Kaydet (Commit) b57f88ce authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Various more l10ntools clean up

üst 6396ab80
...@@ -34,8 +34,6 @@ ...@@ -34,8 +34,6 @@
#include <cstddef> #include <cstddef>
#include <fstream> #include <fstream>
#include <comphelper/string.hxx>
#ifndef L10NTOOLS_DIRECTORY_HXX #ifndef L10NTOOLS_DIRECTORY_HXX
#define L10NTOOLS_DIRECTORY_HXX #define L10NTOOLS_DIRECTORY_HXX
#include <l10ntools/directory.hxx> #include <l10ntools/directory.hxx>
...@@ -56,6 +54,8 @@ ...@@ -56,6 +54,8 @@
#include <direct.h> #include <direct.h>
#endif #endif
#include "helper.hxx"
#define NO_TRANSLATE_ISO "x-no-translate" #define NO_TRANSLATE_ISO "x-no-translate"
class PFormEntrys; class PFormEntrys;
...@@ -196,8 +196,8 @@ public: ...@@ -196,8 +196,8 @@ public:
pPairedList( NULL ), pPairedList( NULL ),
sPForm( rPF ) sPForm( rPF )
{ {
sGId = comphelper::string::remove(sGId, '\r'); helper::searchAndReplaceAll(&sGId, "\r", rtl::OString());
sPForm = comphelper::string::remove(sPForm, '\r'); helper::searchAndReplaceAll(&sPForm, "\r", rtl::OString());
} }
ResData(const rtl::OString &rPF, const rtl::OString &rGId , const rtl::OString &rFilename) ResData(const rtl::OString &rPF, const rtl::OString &rGId , const rtl::OString &rFilename)
...@@ -227,8 +227,8 @@ public: ...@@ -227,8 +227,8 @@ public:
pPairedList( NULL ), pPairedList( NULL ),
sPForm( rPF ) sPForm( rPF )
{ {
sGId = comphelper::string::remove(sGId, '\r'); helper::searchAndReplaceAll(&sGId, "\r", rtl::OString());
sPForm = comphelper::string::remove(sPForm, '\r'); helper::searchAndReplaceAll(&sPForm, "\r", rtl::OString());
} }
}; };
......
...@@ -36,11 +36,9 @@ ...@@ -36,11 +36,9 @@
typedef std::vector< rtl::OString* > LngLineList; typedef std::vector< rtl::OString* > LngLineList;
#define LNG_OK 0x0000 #define LNG_OK 0x0000
#define LNG_FILE_NOTFOUND 0x0001 #define LNG_COULD_NOT_OPEN 0x0001
#define LNG_COULD_NOT_OPEN 0x0002 #define SDF_OK 0x0002
#define SDF_OK 0x0003 #define SDF_COULD_NOT_OPEN 0x0003
#define SDF_FILE_NOTFOUND 0x0004
#define SDF_COULD_NOT_OPEN 0x0005
// //
// class LngParser // class LngParser
......
...@@ -34,8 +34,7 @@ ...@@ -34,8 +34,7 @@
#include <cstring> #include <cstring>
#include "boost/scoped_ptr.hpp" #include "boost/scoped_ptr.hpp"
#include "rtl/strbuf.hxx"
#include <comphelper/string.hxx>
#include "common.hxx" #include "common.hxx"
#include "helper.hxx" #include "helper.hxx"
...@@ -43,8 +42,6 @@ ...@@ -43,8 +42,6 @@
#include "cfgmerge.hxx" #include "cfgmerge.hxx"
#include "tokens.h" #include "tokens.h"
using comphelper::string::getToken;
extern "C" { int yyerror(char const *); } extern "C" { int yyerror(char const *); }
namespace { namespace {
...@@ -277,7 +274,12 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -277,7 +274,12 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
case ANYTOKEN: case ANYTOKEN:
case CFG_TEXT_START: case CFG_TEXT_START:
{ {
sTokenName = getToken(getToken(getToken(sToken, 1, '<'), 0, '>'), 0, ' '); sal_Int32 n = 0;
rtl::OString t(sToken.getToken(1, '<', n));
n = 0;
t = t.getToken(0, '>', n);
n = 0;
sTokenName = t.getToken(0, ' ', n);
if ( !IsTokenClosed( sToken )) { if ( !IsTokenClosed( sToken )) {
rtl::OString sSearch; rtl::OString sSearch;
...@@ -305,15 +307,16 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -305,15 +307,16 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
if ( sCurrentResTyp != sTokenName ) { if ( sCurrentResTyp != sTokenName ) {
WorkOnRessourceEnd(); WorkOnRessourceEnd();
rtl::OString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int i = 0; i < aLanguages.size(); ++i ){
sCur = aLanguages[ n ]; sCur = aLanguages[ i ];
pStackData->sText[ sCur ] = rtl::OString(); pStackData->sText[ sCur ] = rtl::OString();
} }
} }
sCurrentResTyp = sTokenName; sCurrentResTyp = sTokenName;
rtl::OString sTemp = sToken.copy( sToken.indexOf( "xml:lang=" )); rtl::OString sTemp = sToken.copy( sToken.indexOf( "xml:lang=" ));
sCurrentIsoLang = getToken(getToken(sTemp, 1, '\"'), 0, '\"'); n = 0;
sCurrentIsoLang = sTemp.getToken(1, '"', n);
if ( sCurrentIsoLang == NO_TRANSLATE_ISO ) if ( sCurrentIsoLang == NO_TRANSLATE_ISO )
bLocalize = sal_False; bLocalize = sal_False;
...@@ -327,7 +330,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -327,7 +330,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
if ( !sSearch.isEmpty()) if ( !sSearch.isEmpty())
{ {
rtl::OString sTemp = sToken.copy( sToken.indexOf( sSearch )); rtl::OString sTemp = sToken.copy( sToken.indexOf( sSearch ));
sTokenId = getToken(getToken(sTemp, 1, '\"'), 0, '\"'); n = 0;
sTokenId = sTemp.getToken(1, '"', n);
} }
pStackData = aStack.Push( sTokenName, sTokenId ); pStackData = aStack.Push( sTokenName, sTokenId );
...@@ -341,8 +345,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -341,8 +345,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
if ( sCurrentResTyp != sTokenName ) { if ( sCurrentResTyp != sTokenName ) {
WorkOnRessourceEnd(); WorkOnRessourceEnd();
rtl::OString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int i = 0; i < aLanguages.size(); ++i ){
sCur = aLanguages[ n ]; sCur = aLanguages[ i ];
pStackData->sText[ sCur ] = rtl::OString(); pStackData->sText[ sCur ] = rtl::OString();
} }
} }
...@@ -351,7 +355,13 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -351,7 +355,13 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
} }
break; break;
case CFG_CLOSETAG: case CFG_CLOSETAG:
sTokenName = getToken(getToken(getToken(sToken, 1, '/'), 0, '>'), 0, ' '); {
sal_Int32 n = 0;
rtl::OString t(sToken.getToken(1, '/', n));
n = 0;
t = t.getToken(0, '>', n);
n = 0;
sTokenName = t.getToken(0, ' ', n);
if ( aStack.GetStackData() && ( aStack.GetStackData()->GetTagType() == sTokenName )) if ( aStack.GetStackData() && ( aStack.GetStackData()->GetTagType() == sTokenName ))
{ {
if (sCurrentText.isEmpty()) if (sCurrentText.isEmpty())
...@@ -369,6 +379,7 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) ...@@ -369,6 +379,7 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken )
Error( sError ); Error( sError );
std::exit(EXIT_FAILURE); std::exit(EXIT_FAILURE);
} }
}
break; break;
case CFG_TEXTCHAR: case CFG_TEXTCHAR:
...@@ -625,8 +636,8 @@ void CfgMerge::WorkOnRessourceEnd() ...@@ -625,8 +636,8 @@ void CfgMerge::WorkOnRessourceEnd()
if ( pEntrys ) { if ( pEntrys ) {
rtl::OString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int i = 0; i < aLanguages.size(); ++i ){
sCur = aLanguages[ n ]; sCur = aLanguages[ i ];
rtl::OString sContent; rtl::OString sContent;
pEntrys->GetText( sContent, STRING_TYP_TEXT, sCur , sal_True ); pEntrys->GetText( sContent, STRING_TYP_TEXT, sCur , sal_True );
...@@ -643,12 +654,14 @@ void CfgMerge::WorkOnRessourceEnd() ...@@ -643,12 +654,14 @@ void CfgMerge::WorkOnRessourceEnd()
rtl::OString sTextTag = pStackData->sTextTag; rtl::OString sTextTag = pStackData->sTextTag;
rtl::OString sTemp = sTextTag.copy( sTextTag.indexOf( "xml:lang=" )); rtl::OString sTemp = sTextTag.copy( sTextTag.indexOf( "xml:lang=" ));
rtl::OString sSearch = getToken(sTemp, 0, '\"'); sal_Int32 n = 0;
rtl::OString sSearch = sTemp.getToken(0, '"', n);
sSearch += "\""; sSearch += "\"";
sSearch += getToken(sTemp, 1, '\"'); sSearch += sTemp.getToken(0, '"', n);
sSearch += "\""; sSearch += "\"";
rtl::OString sReplace = getToken(sTemp, 0, '\"'); n = 0;
rtl::OString sReplace = sTemp.getToken(0, '"', n);
sReplace += "\""; sReplace += "\"";
sReplace += sCur; sReplace += sCur;
sReplace += "\""; sReplace += "\"";
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#include <cstddef> #include <cstddef>
#include <cstring> #include <cstring>
#include "comphelper/string.hxx"
#include "boost/scoped_ptr.hpp" #include "boost/scoped_ptr.hpp"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -40,14 +42,13 @@ ...@@ -40,14 +42,13 @@
#include "tokens.h" #include "tokens.h"
#include <iostream> #include <iostream>
#include <rtl/strbuf.hxx> #include <rtl/strbuf.hxx>
#include <comphelper/string.hxx>
using comphelper::string::getToken;
using comphelper::string::getTokenCount;
extern "C" { int yyerror( const char * ); } extern "C" { int yyerror( const char * ); }
extern "C" { int YYWarning( const char * ); } extern "C" { int YYWarning( const char * ); }
using comphelper::string::getToken;
using comphelper::string::getTokenCount;
namespace { namespace {
rtl::OString sActFileName; //TODO rtl::OString sActFileName; //TODO
...@@ -245,9 +246,7 @@ sal_Bool ResData::SetId( const rtl::OString& rId, sal_uInt16 nLevel ) ...@@ -245,9 +246,7 @@ sal_Bool ResData::SetId( const rtl::OString& rId, sal_uInt16 nLevel )
if ( sId.getLength() > 255 ) if ( sId.getLength() > 255 )
{ {
YYWarning( "LocalId > 255 chars, truncating..." ); YYWarning( "LocalId > 255 chars, truncating..." );
sId = sId.copy(0, 255); sId = helper::trimAscii(sId.copy(0, 255));
sId = comphelper::string::stripEnd(sId, ' ');
sId = comphelper::string::stripEnd(sId, '\t');
} }
return sal_True; return sal_True;
...@@ -366,11 +365,11 @@ int Export::Execute( int nToken, const char * pToken ) ...@@ -366,11 +365,11 @@ int Export::Execute( int nToken, const char * pToken )
if ( nToken == CONDITION ) if ( nToken == CONDITION )
{ {
rtl::OString sTestToken(pToken); rtl::OString sTestToken(pToken);
sTestToken = comphelper::string::remove(sTestToken, '\t'); helper::searchAndReplaceAll(&sTestToken, "\t", rtl::OString());
sTestToken = comphelper::string::remove(sTestToken, ' '); helper::searchAndReplaceAll(&sTestToken, " ", rtl::OString());
if (( !bReadOver ) && ( comphelper::string::indexOfL(sTestToken, RTL_CONSTASCII_STRINGPARAM("#ifndef__RSC_PARSER")) == 0 )) if (( !bReadOver ) && ( sTestToken.indexOf("#ifndef__RSC_PARSER") == 0 ))
bReadOver = sal_True; bReadOver = sal_True;
else if (( bReadOver ) && ( comphelper::string::indexOfL(sTestToken, RTL_CONSTASCII_STRINGPARAM("#endif")) == 0 )) else if (( bReadOver ) && ( sTestToken.indexOf("#endif") == 0 ))
bReadOver = sal_False; bReadOver = sal_False;
} }
if ((( nToken < FILTER_LEVEL ) || ( bReadOver )) && if ((( nToken < FILTER_LEVEL ) || ( bReadOver )) &&
...@@ -491,12 +490,13 @@ int Export::Execute( int nToken, const char * pToken ) ...@@ -491,12 +490,13 @@ int Export::Execute( int nToken, const char * pToken )
pResData = new ResData( sActPForm, FullId() , sFilename ); pResData = new ResData( sActPForm, FullId() , sFilename );
aResStack.push_back( pResData ); aResStack.push_back( pResData );
sToken = comphelper::string::remove(sToken, '\n'); helper::searchAndReplaceAll(&sToken, "\n", rtl::OString());
sToken = comphelper::string::remove(sToken, '\r'); helper::searchAndReplaceAll(&sToken, "\r", rtl::OString());
sToken = comphelper::string::remove(sToken, '{'); helper::searchAndReplaceAll(&sToken, "{", rtl::OString());
while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; helper::searchAndReplaceAll(&sToken, "\t", " ");
sToken = comphelper::string::stripEnd(sToken, ' '); sToken = helper::trimAscii(sToken);
rtl::OString sTLower = getToken(sToken, 0, ' ').toAsciiLowerCase(); sal_Int32 n = 0;
rtl::OString sTLower = sToken.getToken(0, ' ', n).toAsciiLowerCase();
pResData->sResTyp = sTLower; pResData->sResTyp = sTLower;
rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 )); rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 ));
rtl::OString sCondition; rtl::OString sCondition;
...@@ -504,12 +504,14 @@ int Export::Execute( int nToken, const char * pToken ) ...@@ -504,12 +504,14 @@ int Export::Execute( int nToken, const char * pToken )
{ {
// between ResTyp, Id and paranthes is a precomp. condition // between ResTyp, Id and paranthes is a precomp. condition
sCondition = "#"; sCondition = "#";
sCondition += getToken(sId, 1, '#'); n = 0;
sId = getToken(sId, 0, '#'); sId = sId.getToken(0, '#', n);
sCondition += sId.getToken(0, '#', n);
} }
sId = getToken(sId, 0, '/'); n = 0;
sId = sId.getToken(0, '/', n);
CleanValue( sId ); CleanValue( sId );
sId = comphelper::string::remove(sId, '\t'); helper::searchAndReplaceAll(&sId, "\t", rtl::OString());
pResData->SetId( sId, ID_LEVEL_IDENTIFIER ); pResData->SetId( sId, ID_LEVEL_IDENTIFIER );
if (!sCondition.isEmpty()) if (!sCondition.isEmpty())
{ {
...@@ -530,12 +532,12 @@ int Export::Execute( int nToken, const char * pToken ) ...@@ -530,12 +532,12 @@ int Export::Execute( int nToken, const char * pToken )
pResData = new ResData( sActPForm, FullId() , sFilename ); pResData = new ResData( sActPForm, FullId() , sFilename );
aResStack.push_back( pResData ); aResStack.push_back( pResData );
sToken = comphelper::string::remove(sToken, '\n'); helper::searchAndReplaceAll(&sToken, "\n", rtl::OString());
sToken = comphelper::string::remove(sToken, '\r'); helper::searchAndReplaceAll(&sToken, "\r", rtl::OString());
sToken = comphelper::string::remove(sToken, '{'); helper::searchAndReplaceAll(&sToken, "{", rtl::OString());
sToken = comphelper::string::remove(sToken, '\t'); helper::searchAndReplaceAll(&sToken, "\t", rtl::OString());
sToken = comphelper::string::remove(sToken, ' '); helper::searchAndReplaceAll(&sToken, " ", rtl::OString());
sToken = comphelper::string::remove(sToken, '\\'); helper::searchAndReplaceAll(&sToken, "\\", rtl::OString());
sToken = sToken.toAsciiLowerCase(); sToken = sToken.toAsciiLowerCase();
pResData->sResTyp = sToken; pResData->sResTyp = sToken;
} }
...@@ -595,16 +597,18 @@ int Export::Execute( int nToken, const char * pToken ) ...@@ -595,16 +597,18 @@ int Export::Execute( int nToken, const char * pToken )
{ {
bDontWriteOutput = sal_False; bDontWriteOutput = sal_False;
// interpret different types of assignement // interpret different types of assignement
rtl::OString sKey = getToken(sToken, 0, '='); sal_Int32 n = 0;
sKey = comphelper::string::remove(sKey, ' '); rtl::OString sKey = sToken.getToken(0, '=', n);
sKey = comphelper::string::remove(sKey, '\t'); helper::searchAndReplaceAll(&sKey, " ", rtl::OString());
rtl::OString sValue = getToken(sToken, 1, '='); helper::searchAndReplaceAll(&sKey, "\t", rtl::OString());
rtl::OString sValue = sToken.getToken(0, '=', n);
CleanValue( sValue ); CleanValue( sValue );
sKey = sKey.toAsciiUpperCase(); sKey = sKey.toAsciiUpperCase();
if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("IDENTIFIER"))) if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("IDENTIFIER")))
{ {
rtl::OString sId(comphelper::string::remove(sValue, '\t')); rtl::OString sId(sValue);
sId = comphelper::string::remove(sId, ' '); helper::searchAndReplaceAll(&sId, "\t", rtl::OString());
helper::searchAndReplaceAll(&sId, " ", rtl::OString());
pResData->SetId(sId, ID_LEVEL_IDENTIFIER); pResData->SetId(sId, ID_LEVEL_IDENTIFIER);
} }
else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("HELPID"))) else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("HELPID")))
...@@ -1113,11 +1117,8 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew ) ...@@ -1113,11 +1117,8 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
rtl::OString Export::GetPairedListID(const rtl::OString& rText) rtl::OString Export::GetPairedListID(const rtl::OString& rText)
{ {
// < "STRING" ; IDENTIFIER ; > ; // < "STRING" ; IDENTIFIER ; > ;
rtl::OString sIdent( return helper::trimAscii(
getToken(rText, 1, ';').toAsciiUpperCase().replace('\t', ' ')); getToken(rText, 1, ';').toAsciiUpperCase().replace('\t', ' '));
sIdent = comphelper::string::stripEnd(sIdent, ' ');
sIdent = comphelper::string::stripStart(sIdent, ' ');
return sIdent;
} }
rtl::OString Export::GetPairedListString(const rtl::OString& rText) rtl::OString Export::GetPairedListString(const rtl::OString& rText)
......
...@@ -29,20 +29,19 @@ ...@@ -29,20 +29,19 @@
#include "sal/config.h" #include "sal/config.h"
#include "export.hxx" #include "export.hxx"
#include "helper.hxx"
#include <stdio.h> #include <stdio.h>
#include <osl/time.h> #include <osl/time.h>
#include <osl/process.h> #include <osl/process.h>
#include <rtl/strbuf.hxx>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <sal/macros.h> #include <sal/macros.h>
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>
#include <tools/urlobj.hxx> #include <tools/urlobj.hxx>
#include <comphelper/string.hxx>
#include <time.h> #include <time.h>
#include <stdlib.h> #include <stdlib.h>
using namespace std;
using comphelper::string::getToken;
// //
// class ResData(); // class ResData();
// //
...@@ -216,14 +215,14 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest) ...@@ -216,14 +215,14 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest)
FILE* IN_FILE = fopen( rSource.getStr() , "r" ); FILE* IN_FILE = fopen( rSource.getStr() , "r" );
if( IN_FILE == NULL ) if( IN_FILE == NULL )
{ {
cerr << "Export::CopyFile WARNING: Could not open " << rSource.getStr() << "\n"; std::cerr << "Export::CopyFile WARNING: Could not open " << rSource.getStr() << "\n";
return false; return false;
} }
FILE* OUT_FILE = fopen( rDest.getStr() , "w" ); FILE* OUT_FILE = fopen( rDest.getStr() , "w" );
if( OUT_FILE == NULL ) if( OUT_FILE == NULL )
{ {
cerr << "Export::CopyFile WARNING: Could not open/create " << rDest.getStr() << " for writing\n"; std::cerr << "Export::CopyFile WARNING: Could not open/create " << rDest.getStr() << " for writing\n";
fclose( IN_FILE ); fclose( IN_FILE );
return false; return false;
} }
...@@ -232,7 +231,7 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest) ...@@ -232,7 +231,7 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest)
{ {
if( fputs( buf , OUT_FILE ) == EOF ) if( fputs( buf , OUT_FILE ) == EOF )
{ {
cerr << "Export::CopyFile WARNING: Write problems " << rSource.getStr() << "\n"; std::cerr << "Export::CopyFile WARNING: Write problems " << rSource.getStr() << "\n";
fclose( IN_FILE ); fclose( IN_FILE );
fclose( OUT_FILE ); fclose( OUT_FILE );
return false; return false;
...@@ -240,7 +239,7 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest) ...@@ -240,7 +239,7 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest)
} }
if( ferror( IN_FILE ) ) if( ferror( IN_FILE ) )
{ {
cerr << "Export::CopyFile WARNING: Read problems " << rDest.getStr() << "\n"; std::cerr << "Export::CopyFile WARNING: Read problems " << rDest.getStr() << "\n";
fclose( IN_FILE ); fclose( IN_FILE );
fclose( OUT_FILE ); fclose( OUT_FILE );
return false; return false;
...@@ -304,8 +303,8 @@ void Export::InitLanguages( bool bMergeMode ){ ...@@ -304,8 +303,8 @@ void Export::InitLanguages( bool bMergeMode ){
do do
{ {
rtl::OString aToken = sLanguages.getToken(0, ',', nIndex); rtl::OString aToken = sLanguages.getToken(0, ',', nIndex);
sTmp = getToken(aToken, 0, '='); sal_Int32 n = 0;
sTmp = comphelper::string::strip(sTmp, ' '); sTmp = helper::trimAscii(aToken.getToken(0, '=', n));
if( bMergeMode && !isAllowed( sTmp ) ){} if( bMergeMode && !isAllowed( sTmp ) ){}
else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ){ else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ){
aLanguages.push_back( sTmp ); aLanguages.push_back( sTmp );
...@@ -328,8 +327,8 @@ void Export::InitForcedLanguages( bool bMergeMode ){ ...@@ -328,8 +327,8 @@ void Export::InitForcedLanguages( bool bMergeMode ){
{ {
rtl::OString aToken = sForcedLanguages.getToken(0, ',', nIndex); rtl::OString aToken = sForcedLanguages.getToken(0, ',', nIndex);
sTmp = getToken(aToken, 0, '='); sal_Int32 n = 0;
sTmp = comphelper::string::strip(sTmp, ' '); sTmp = helper::trimAscii(aToken.getToken(0, '=', n));
if( bMergeMode && isAllowed( sTmp ) ){} if( bMergeMode && isAllowed( sTmp ) ){}
else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ) else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) )
aForcedLanguages.push_back( sTmp ); aForcedLanguages.push_back( sTmp );
...@@ -353,14 +352,14 @@ const char* Export::GetEnv( const char *pVar ) ...@@ -353,14 +352,14 @@ const char* Export::GetEnv( const char *pVar )
return pRet; return pRet;
} }
void Export::getCurrentDir( string& dir ) void Export::getCurrentDir( std::string& dir )
{ {
char buffer[64000]; char buffer[64000];
if( getcwd( buffer , sizeof( buffer ) ) == 0 ){ if( getcwd( buffer , sizeof( buffer ) ) == 0 ){
cerr << "Error: getcwd failed!\n"; std::cerr << "Error: getcwd failed!\n";
exit( -1 ); exit( -1 );
} }
dir = string( buffer ); dir = std::string( buffer );
} }
......
...@@ -30,17 +30,23 @@ ...@@ -30,17 +30,23 @@
#include <cstddef> #include <cstddef>
#include <fstream> #include <fstream>
#include <iterator>
#include <string> #include <string>
#include <tools/fsys.hxx> #include "common.hxx"
#include <comphelper/string.hxx> #include "helper.hxx"
#include "lngmerge.hxx" #include "lngmerge.hxx"
#include <iostream>
using namespace std; namespace {
using comphelper::string::getToken;
using comphelper::string::getTokenCount; rtl::OString getBracketedContent(rtl::OString text) {
sal_Int32 n = 0;
rtl::OString t(text.getToken(1, '[', n));
n = 0;
return t.getToken(0, ']', n);
}
}
// //
// class LngParser // class LngParser
...@@ -54,34 +60,28 @@ LngParser::LngParser(const rtl::OString &rLngFile, sal_Bool bUTF8, ...@@ -54,34 +60,28 @@ LngParser::LngParser(const rtl::OString &rLngFile, sal_Bool bUTF8,
, bULF( bULFFormat ) , bULF( bULFFormat )
{ {
pLines = new LngLineList(); pLines = new LngLineList();
DirEntry aEntry(rtl::OStringToOUString(sSource, RTL_TEXTENCODING_ASCII_US)); std::ifstream aStream(sSource.getStr());
if ( aEntry.Exists()) if (aStream.is_open())
{ {
std::ifstream aStream(sSource.getStr()); bool bFirstLine = true;
if (aStream.is_open()) while (!aStream.eof())
{ {
bool bFirstLine = true; std::string s;
while (!aStream.eof()) std::getline(aStream, s);
{ rtl::OString sLine(s.data(), s.length());
std::string s;
std::getline(aStream, s);
rtl::OString sLine(s.data(), s.length());
if( bFirstLine ) if( bFirstLine )
{ {
// Always remove UTF8 BOM from the first line // Always remove UTF8 BOM from the first line
Export::RemoveUTF8ByteOrderMarker( sLine ); Export::RemoveUTF8ByteOrderMarker( sLine );
bFirstLine = false; bFirstLine = false;
}
pLines->push_back( new rtl::OString(sLine) );
} }
pLines->push_back( new rtl::OString(sLine) );
} }
else
nError = LNG_COULD_NOT_OPEN;
} }
else else
nError = LNG_FILE_NOTFOUND; nError = LNG_COULD_NOT_OPEN;
} }
LngParser::~LngParser() LngParser::~LngParser()
...@@ -104,17 +104,8 @@ sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile, ...@@ -104,17 +104,8 @@ sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile,
nError = SDF_COULD_NOT_OPEN; nError = SDF_COULD_NOT_OPEN;
} }
nError = SDF_OK; nError = SDF_OK;
DirEntry aEntry(rtl::OStringToOUString(sSource, RTL_TEXTENCODING_ASCII_US)); rtl::OString sActFileName(
aEntry.ToAbs(); common::pathnameToken(sSource.getStr(), rRoot.getStr()));
rtl::OUString sFullEntry(aEntry.GetFull());
aEntry += DirEntry(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
aEntry += DirEntry( rRoot );
rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(),
osl_getThreadTextEncoding()));
rtl::OString sActFileName(rtl::OUStringToOString(
sFullEntry.copy(sPrjEntry.getLength() + 1),
osl_getThreadTextEncoding()));
sActFileName = sActFileName.replace('/', '\\');
size_t nPos = 0; size_t nPos = 0;
sal_Bool bStart = true; sal_Bool bStart = true;
...@@ -171,13 +162,10 @@ void LngParser::WriteSDF(std::ofstream &aSDFStream, ...@@ -171,13 +162,10 @@ void LngParser::WriteSDF(std::ofstream &aSDFStream,
bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in) bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in)
{ {
sLine_in = comphelper::string::stripStart(sLine_in, ' '); sLine_in = helper::trimAscii(sLine_in);
sLine_in = comphelper::string::stripEnd(sLine_in, ' ');
if ((sLine_in[0] == '[') && (sLine_in[sLine_in.getLength() - 1] == ']')) if ((sLine_in[0] == '[') && (sLine_in[sLine_in.getLength() - 1] == ']'))
{ {
sGroup_out = getToken(getToken(sLine_in, 1, '['), 0, ']'); sGroup_out = helper::trimAscii(getBracketedContent(sLine_in));
sGroup_out = comphelper::string::stripStart(sGroup_out, ' ');
sGroup_out = comphelper::string::stripEnd(sGroup_out, ' ');
return true; return true;
} }
return false; return false;
...@@ -186,12 +174,13 @@ bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in) ...@@ -186,12 +174,13 @@ bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in)
void LngParser::ReadLine(const rtl::OString &rLine_in, void LngParser::ReadLine(const rtl::OString &rLine_in,
OStringHashMap &rText_inout) OStringHashMap &rText_inout)
{ {
rtl::OString sLang = getToken(rLine_in, 0, '='); sal_Int32 n = 0;
sLang = comphelper::string::stripStart(sLang, ' '); rtl::OString sLang(helper::trimAscii(rLine_in.getToken(0, '=', n)));
sLang = comphelper::string::stripEnd(sLang, ' '); if (!sLang.isEmpty()) {
rtl::OString sText = getToken(getToken(rLine_in, 1, '\"'), 0, '\"'); n = 0;
if (!sLang.isEmpty()) rtl::OString sText(rLine_in.getToken(1, '"', n));
rText_inout[ sLang ] = sText; rText_inout[sLang] = sText;
}
} }
sal_Bool LngParser::Merge( sal_Bool LngParser::Merge(
...@@ -220,14 +209,11 @@ sal_Bool LngParser::Merge( ...@@ -220,14 +209,11 @@ sal_Bool LngParser::Merge(
while ( nPos < pLines->size() && !bGroup ) while ( nPos < pLines->size() && !bGroup )
{ {
rtl::OString sLine( *(*pLines)[ nPos ] ); rtl::OString sLine( *(*pLines)[ nPos ] );
sLine = comphelper::string::stripStart(sLine, ' '); sLine = helper::trimAscii(sLine);
sLine = comphelper::string::stripEnd(sLine, ' ');
if (( sLine[0] == '[' ) && if (( sLine[0] == '[' ) &&
( sLine[sLine.getLength() - 1] == ']' )) ( sLine[sLine.getLength() - 1] == ']' ))
{ {
sGroup = getToken(getToken(sLine, 1, '['), 0, ']'); sGroup = helper::trimAscii(getBracketedContent(sLine));
sGroup = comphelper::string::stripStart(sGroup, ' ');
sGroup = comphelper::string::stripEnd(sGroup, ' ');
bGroup = sal_True; bGroup = sal_True;
} }
nPos ++; nPos ++;
...@@ -249,63 +235,65 @@ sal_Bool LngParser::Merge( ...@@ -249,63 +235,65 @@ sal_Bool LngParser::Merge(
while ( nPos < pLines->size() && !bGroup ) while ( nPos < pLines->size() && !bGroup )
{ {
rtl::OString sLine( *(*pLines)[ nPos ] ); rtl::OString sLine( *(*pLines)[ nPos ] );
sLine = comphelper::string::stripStart(sLine, ' '); sLine = helper::trimAscii(sLine);
sLine = comphelper::string::stripEnd(sLine, ' ');
if (( sLine[0] == '[' ) && if (( sLine[0] == '[' ) &&
( sLine[sLine.getLength() - 1] == ']' )) ( sLine[sLine.getLength() - 1] == ']' ))
{ {
sGroup = getToken(getToken(sLine, 1, '['), 0, ']'); sGroup = helper::trimAscii(getBracketedContent(sLine));
sGroup = comphelper::string::stripStart(sGroup, ' ');
sGroup = comphelper::string::stripEnd(sGroup, ' ');
bGroup = sal_True; bGroup = sal_True;
nPos ++; nPos ++;
sLanguagesDone = ""; sLanguagesDone = "";
} }
else if ( getTokenCount(sLine, '=') > 1 ) else
{ {
rtl::OString sLang = getToken(sLine, 0, '='); sal_Int32 n = 0;
sLang = comphelper::string::stripStart(sLang, ' '); rtl::OString sLang(sLine.getToken(0, '=', n));
sLang = comphelper::string::stripEnd(sLang, ' '); if (n == -1)
{
rtl::OString sSearch( ";" ); ++nPos;
sSearch += sLang;
sSearch += ";";
if (( sLanguagesDone.indexOf( sSearch ) != -1 )) {
LngLineList::iterator it = pLines->begin();
::std::advance( it, nPos );
pLines->erase( it );
} }
if( bULF && pEntrys ) else
{ {
if( !sLang.isEmpty() ) sLang = helper::trimAscii(sLang);
rtl::OString sSearch( ";" );
sSearch += sLang;
sSearch += ";";
if (( sLanguagesDone.indexOf( sSearch ) != -1 )) {
LngLineList::iterator it = pLines->begin();
std::advance( it, nPos );
pLines->erase( it );
}
if( bULF && pEntrys )
{ {
rtl::OString sNewText; if( !sLang.isEmpty() )
pEntrys->GetText( sNewText, STRING_TYP_TEXT, sLang, sal_True ); {
rtl::OString sNewText;
if ( !sNewText.isEmpty()) { pEntrys->GetText( sNewText, STRING_TYP_TEXT, sLang, sal_True );
rtl::OString *pLine = (*pLines)[ nPos ];
if ( !sNewText.isEmpty()) {
rtl::OString sText1( sLang ); rtl::OString *pLine = (*pLines)[ nPos ];
sText1 += " = \"";
sText1 += sNewText; rtl::OString sText1( sLang );
sText1 += "\""; sText1 += " = \"";
*pLine = sText1; sText1 += sNewText;
Text[ sLang ] = sNewText; sText1 += "\"";
*pLine = sText1;
Text[ sLang ] = sNewText;
}
} }
nLastLangPos = nPos;
nPos ++;
sLanguagesDone += sSearch;
}
else {
nLastLangPos = nPos;
nPos ++;
sLanguagesDone += sSearch;
} }
nLastLangPos = nPos;
nPos ++;
sLanguagesDone += sSearch;
}
else {
nLastLangPos = nPos;
nPos ++;
sLanguagesDone += sSearch;
} }
} }
else
nPos++;
} }
rtl::OString sCur; rtl::OString sCur;
if ( nLastLangPos ) if ( nLastLangPos )
...@@ -332,7 +320,7 @@ sal_Bool LngParser::Merge( ...@@ -332,7 +320,7 @@ sal_Bool LngParser::Merge(
if ( nLastLangPos < pLines->size() ) { if ( nLastLangPos < pLines->size() ) {
LngLineList::iterator it = pLines->begin(); LngLineList::iterator it = pLines->begin();
::std::advance( it, nLastLangPos ); std::advance( it, nLastLangPos );
pLines->insert( it, new rtl::OString(sLine) ); pLines->insert( it, new rtl::OString(sLine) );
} else { } else {
pLines->push_back( new rtl::OString(sLine) ); pLines->push_back( new rtl::OString(sLine) );
......
...@@ -75,7 +75,6 @@ APP1TARGET= transex3 ...@@ -75,7 +75,6 @@ APP1TARGET= transex3
APP1OBJS= $(OBJ)$/src_yy_wrapper.obj APP1OBJS= $(OBJ)$/src_yy_wrapper.obj
APP1RPATH= NONE APP1RPATH= NONE
APP1STDLIBS+= \ APP1STDLIBS+= \
$(TOOLSLIB) \
$(COMPHELPERLIB) \ $(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
...@@ -96,8 +95,6 @@ APP3TARGET= ulfex ...@@ -96,8 +95,6 @@ APP3TARGET= ulfex
APP3OBJS= $(OBJ)$/lngmerge.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj $(OBJ)$/lngex.obj APP3OBJS= $(OBJ)$/lngmerge.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj $(OBJ)$/lngex.obj
APP3RPATH= NONE APP3RPATH= NONE
APP3STDLIBS+= \ APP3STDLIBS+= \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
# tag checker for *.gsi # tag checker for *.gsi
...@@ -112,8 +109,6 @@ APP6TARGET= cfgex ...@@ -112,8 +109,6 @@ APP6TARGET= cfgex
APP6OBJS= $(OBJ)$/cfgmerge.obj $(OBJ)$/cfg_yy_wrapper.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj APP6OBJS= $(OBJ)$/cfgmerge.obj $(OBJ)$/cfg_yy_wrapper.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj
APP6RPATH= NONE APP6RPATH= NONE
APP6STDLIBS+= \ APP6STDLIBS+= \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
# extractor and merger for *.xrm # extractor and merger for *.xrm
......
...@@ -28,25 +28,20 @@ ...@@ -28,25 +28,20 @@
#include "sal/config.h" #include "sal/config.h"
#include <algorithm>
#include <fstream> #include <fstream>
#include <string> #include <string>
#include <vector>
#include <stdio.h>
#include <tools/fsys.hxx>
#include <comphelper/string.hxx>
#include "export.hxx" #include "export.hxx"
#include <iostream> #include "helper.hxx"
using namespace std;
using comphelper::string::getToken;
using comphelper::string::getTokenCount;
namespace namespace
{ {
static ::rtl::OString lcl_NormalizeFilename(const ::rtl::OString& rFilename) static ::rtl::OString lcl_NormalizeFilename(const ::rtl::OString& rFilename)
{ {
return rFilename.copy( return rFilename.copy(
::std::max( std::max(
rFilename.lastIndexOf( "\\" ), rFilename.lastIndexOf( "\\" ),
rFilename.lastIndexOf( "/" ))+1); rFilename.lastIndexOf( "/" ))+1);
}; };
...@@ -195,37 +190,28 @@ MergeDataFile::MergeDataFile( ...@@ -195,37 +190,28 @@ MergeDataFile::MergeDataFile(
std::string buf; std::string buf;
std::getline(aInputStream, buf); std::getline(aInputStream, buf);
rtl::OString sLine(buf.data(), buf.length()); rtl::OString sLine(buf.data(), buf.length());
xub_StrLen nToks = getTokenCount(sLine, '\t'); sal_Int32 n = 0;
if ( nToks == 15 ) // Skip all wrong filenames
const ::rtl::OString filename = lcl_NormalizeFilename(sLine.getToken(1, '\t', n)); // token 1
if(isFileEmpty || sFileNormalized.equals("") || (!isFileEmpty && filename.equals(sFileNormalized)) )
{ {
// Skip all wrong filenames const rtl::OString sTYP = sLine.getToken( 1, '\t', n ); // token 3
const ::rtl::OString filename = lcl_NormalizeFilename(getToken(sLine, 1 , '\t')); const rtl::OString sGID = sLine.getToken( 0, '\t', n ); // token 4
if(isFileEmpty || sFileNormalized.equals("") || (!isFileEmpty && filename.equals(sFileNormalized)) ) const rtl::OString sLID = sLine.getToken( 0, '\t', n ); // token 5
rtl::OString sPFO = sLine.getToken( 1, '\t', n ); // token 7
sPFO = sHACK;
rtl::OString nLANG = sLine.getToken( 1, '\t', n ); // token 9
nLANG = helper::trimAscii(nLANG);
const rtl::OString sTEXT = sLine.getToken( 0, '\t', n ); // token 10
const rtl::OString sQHTEXT = sLine.getToken( 1, '\t', n ); // token 12
const rtl::OString sTITLE = sLine.getToken( 0, '\t', n ); // token 13
if (!nLANG.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("en-US")))
{ {
sal_Int32 rIdx = 0; aLanguageSet.insert(nLANG);
const rtl::OString sTYP = sLine.getToken( 3, '\t', rIdx ); InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE, filename, bCaseSensitive );
const rtl::OString sGID = sLine.getToken( 0, '\t', rIdx ); // 4
const rtl::OString sLID = sLine.getToken( 0, '\t', rIdx ); // 5
rtl::OString sPFO = sLine.getToken( 1, '\t', rIdx ); // 7
sPFO = sHACK;
rtl::OString nLANG = sLine.getToken( 1, '\t', rIdx ); // 9
nLANG = comphelper::string::strip(nLANG, ' ');
const rtl::OString sTEXT = sLine.getToken( 0, '\t', rIdx ); // 10
const rtl::OString sQHTEXT = sLine.getToken( 1, '\t', rIdx ); // 12
const rtl::OString sTITLE = sLine.getToken( 0, '\t', rIdx ); // 13
if (!nLANG.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("en-US")))
{
aLanguageSet.insert(nLANG);
InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE, filename, bCaseSensitive );
}
} }
} }
else if ( nToks == 10 )
{
printf("ERROR: File format is obsolete and no longer supported!\n");
}
} }
aInputStream.close(); aInputStream.close();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment