diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-02-02 09:11:38 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-02-02 09:22:07 +0100 |
commit | e521a240601c6a2b9f9448db73c09181fed2247d (patch) | |
tree | a878cdcf1b551491edc64551c2fd24888906b123 | |
parent | 54d278ae5feea82d105e4bd11d554ad5fcb41099 (diff) |
Reduced tools/string usage
plus some preliminary cfgex clean up.
-rw-r--r-- | l10ntools/inc/cfgmerge.hxx | 29 | ||||
-rw-r--r-- | l10ntools/inc/export.hxx | 79 | ||||
-rw-r--r-- | l10ntools/inc/gsicheck.hxx | 47 | ||||
-rw-r--r-- | l10ntools/inc/helpmerge.hxx | 20 | ||||
-rw-r--r-- | l10ntools/inc/lngmerge.hxx | 4 | ||||
-rw-r--r-- | l10ntools/inc/xmlparse.hxx | 53 | ||||
-rw-r--r-- | l10ntools/source/cfglex.l | 100 | ||||
-rw-r--r-- | l10ntools/source/cfgmerge.cxx | 546 | ||||
-rw-r--r-- | l10ntools/source/export.cxx | 247 | ||||
-rw-r--r-- | l10ntools/source/export2.cxx | 89 | ||||
-rw-r--r-- | l10ntools/source/gsicheck.cxx | 152 | ||||
-rw-r--r-- | l10ntools/source/helper.hxx | 70 | ||||
-rw-r--r-- | l10ntools/source/helpex.cxx | 2 | ||||
-rw-r--r-- | l10ntools/source/helpmerge.cxx | 42 | ||||
-rw-r--r-- | l10ntools/source/lngmerge.cxx | 16 | ||||
-rw-r--r-- | l10ntools/source/merge.cxx | 14 | ||||
-rw-r--r-- | l10ntools/source/xmlparse.cxx | 72 | ||||
-rw-r--r-- | l10ntools/source/xrmmerge.cxx | 12 |
18 files changed, 760 insertions, 834 deletions
diff --git a/l10ntools/inc/cfgmerge.hxx b/l10ntools/inc/cfgmerge.hxx index d85271536660..bd0627e876f0 100644 --- a/l10ntools/inc/cfgmerge.hxx +++ b/l10ntools/inc/cfgmerge.hxx @@ -29,11 +29,10 @@ #ifndef _CFG_MERGE_HXX #define _CFG_MERGE_HXX -#include <tools/string.hxx> #include <boost/unordered_map.hpp> #include <vector> -typedef boost::unordered_map<rtl::OString, rtl::OString, rtl::OStringHash> ByteStringHashMap; +typedef boost::unordered_map<rtl::OString, rtl::OString, rtl::OStringHash> OStringHashMap; // @@ -54,7 +53,7 @@ private: rtl::OString sTextTag; rtl::OString sEndTextTag; - ByteStringHashMap sText; + OStringHashMap sText; public: CfgStackData(const rtl::OString &rTag, const rtl::OString &rId) : sTagType( rTag ), sIdentifier( rId ) @@ -106,7 +105,7 @@ class CfgParser protected: rtl::OString sCurrentResTyp; rtl::OString sCurrentIsoLang; - ByteString sCurrentText; + rtl::OString sCurrentText; rtl::OString sLastWhitespace; @@ -116,7 +115,7 @@ protected: sal_Bool bLocalize; virtual void WorkOnText( - ByteString &rText, + rtl::OString &rText, const rtl::OString &rLangIndex )=0; virtual void WorkOnRessourceEnd()=0; @@ -129,9 +128,9 @@ private: int ExecuteAnalyzedToken( int nToken, char *pToken ); std::vector<rtl::OString> aLanguages; void AddText( - ByteString &rText, - const ByteString &rIsoLang, - const ByteString &rResTyp ); + rtl::OString &rText, + const rtl::OString &rIsoLang, + const rtl::OString &rResTyp ); sal_Bool IsTokenClosed(const rtl::OString &rToken); @@ -162,12 +161,12 @@ public: class CfgExport : public CfgOutputParser { private: - ByteString sPrj; - ByteString sPath; + rtl::OString sPrj; + rtl::OString sPath; std::vector<rtl::OString> aLanguages; protected: virtual void WorkOnText( - ByteString &rText, + rtl::OString &rText, const rtl::OString &rIsoLang ); @@ -175,9 +174,9 @@ protected: void Output(const rtl::OString& rOutput); public: CfgExport( - const ByteString &rOutputFile, - const ByteString &rProject, - const ByteString &rFilePath + const rtl::OString &rOutputFile, + const rtl::OString &rProject, + const rtl::OString &rFilePath ); ~CfgExport(); }; @@ -197,7 +196,7 @@ private: sal_Bool bEnglish; protected: - virtual void WorkOnText(ByteString &rText, const rtl::OString &rLangIndex); + virtual void WorkOnText(rtl::OString &rText, const rtl::OString &rLangIndex); void WorkOnRessourceEnd(); diff --git a/l10ntools/inc/export.hxx b/l10ntools/inc/export.hxx index e0fcf058fe1e..d8e3c963aa3e 100644 --- a/l10ntools/inc/export.hxx +++ b/l10ntools/inc/export.hxx @@ -29,6 +29,8 @@ #ifndef _EXPORT_HXX #define _EXPORT_HXX +#include "sal/config.h" + #include <comphelper/string.hxx> #ifndef L10NTOOLS_DIRECTORY_HXX @@ -36,7 +38,6 @@ #include <l10ntools/directory.hxx> #endif -#include <tools/string.hxx> #include <tools/stream.hxx> #include <tools/fsys.hxx> #include <osl/file.hxx> @@ -58,13 +59,12 @@ class PFormEntrys; class MergeData; -typedef std::set<rtl::OString> ByteStringSet; typedef boost::unordered_map<rtl::OString, rtl::OString, rtl::OStringHash> - ByteStringHashMap; + OStringHashMap; typedef boost::unordered_map<rtl::OString, bool, rtl::OStringHash> - ByteStringBoolHashMap; + OStringBoolHashMap; typedef boost::unordered_map<rtl::OString, PFormEntrys*, rtl::OStringHash> PFormEntrysHashMap; @@ -75,7 +75,7 @@ typedef boost::unordered_map<rtl::OString, MergeData*, rtl::OStringHash> #define SOURCE_LANGUAGE rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US")) #define LIST_REFID "LIST_REFID" -typedef ByteStringHashMap ExportListEntry; +typedef OStringHashMap ExportListEntry; typedef ::std::vector< ExportListEntry* > ExportListBase; // @@ -145,16 +145,16 @@ public: rtl::OString sHelpId; rtl::OString sFilename; - ByteStringHashMap sText; + OStringHashMap sText; sal_uInt16 nTextRefId; - ByteStringHashMap sHelpText; + OStringHashMap sHelpText; sal_uInt16 nHelpTextRefId; - ByteStringHashMap sQuickHelpText; + OStringHashMap sQuickHelpText; sal_uInt16 nQuickHelpTextRefId; - ByteStringHashMap sTitle; + OStringHashMap sTitle; sal_uInt16 nTitleRefId; rtl::OString sTextTyp; @@ -267,7 +267,7 @@ private: ResStack aResStack; // stack for parsing recursive - ByteString sActPForm; // hold cur. system + rtl::OString sActPForm; // hold cur. system sal_Bool bDefine; // cur. res. in a define? sal_Bool bNextMustBeDefineEOL; // define but no \ at lineend @@ -277,18 +277,18 @@ private: sal_uLong nListIndex; sal_uLong nListLevel; bool bSkipFile; - ByteString sProject; - ByteString sRoot; + rtl::OString sProject; + rtl::OString sRoot; sal_Bool bEnableExport; sal_Bool bMergeMode; - ByteString sMergeSrc; - ByteString sLastListLine; + rtl::OString sMergeSrc; + rtl::OString sLastListLine; sal_Bool bError; // any errors while export? sal_Bool bReadOver; sal_Bool bDontWriteOutput; - ByteString sLastTextTyp; + rtl::OString sLastTextTyp; static bool isInitialized; - ByteString sFilename; + rtl::OString sFilename; public: @@ -296,8 +296,6 @@ public: static rtl::OString sLanguages; // public ? static rtl::OString sForcedLanguages; // public ? - - static bool skipProject( ByteString sPrj ) ; static void InitLanguages( bool bMergeMode = false ); static void InitForcedLanguages( bool bMergeMode = false ); static std::vector<rtl::OString> GetLanguages(); @@ -308,10 +306,10 @@ public: static bool hasUTF8ByteOrderMarker( const rtl::OString &rString ); static void RemoveUTF8ByteOrderMarkerFromFile(const rtl::OString &rFilename); static bool fileHasUTF8ByteOrderMarker(const rtl::OString &rString); - static void QuotHTML( ByteString &rString ); + static rtl::OString QuoteHTML( rtl::OString const &rString ); static bool CopyFile(const rtl::OString& rSource , const rtl::OString& rDest); - static void UnquotHTML( ByteString &rString ); + static rtl::OString UnquoteHTML( rtl::OString const &rString ); static const char* GetEnv( const char *pVar ); @@ -323,14 +321,14 @@ public: static void getCurrentDir( std::string& dir ); static rtl::OString GetTimeStamp(); - static sal_Bool ConvertLineEnds( ByteString sSource, ByteString sDestination ); - static ByteString GetNativeFile( ByteString sSource ); + static sal_Bool ConvertLineEnds( rtl::OString const & sSource, rtl::OString const & sDestination ); + static rtl::OString GetNativeFile( rtl::OString const & sSource ); static DirEntry GetTempFile(); static void DumpExportList(const rtl::OString& rListName, ExportList& aList); static void DumpMap(const rtl::OString& rMapName, - ByteStringHashMap& aMap); + OStringHashMap& aMap); private: static std::vector<rtl::OString> aLanguages; @@ -340,7 +338,7 @@ private: sal_Bool WriteExportList( ResData *pResData, ExportList *pExportList, const rtl::OString &rTyp, sal_Bool bCreateNew = sal_False ); - ByteString MergePairedList( ByteString& sLine , ByteString& sText ); + rtl::OString MergePairedList( rtl::OString const & sLine , rtl::OString const & sText ); rtl::OString FullId(); // creates cur. GID @@ -349,19 +347,19 @@ private: rtl::OString StripList(const rtl::OString& rText); void InsertListEntry(const rtl::OString &rText, const rtl::OString &rLine); - void CleanValue( ByteString &rValue ); + void CleanValue( rtl::OString &rValue ); rtl::OString GetText(const rtl::OString &rSource, int nToken); - sal_Bool PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, + sal_Bool PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp, rtl::OString &rLangIndex, ResData *pResData); void MergeRest( ResData *pResData, sal_uInt16 nMode = MERGE_MODE_NORMAL ); - void ConvertMergeContent( ByteString &rText ); + void ConvertMergeContent( rtl::OString &rText ); void WriteToMerged(const rtl::OString &rText , bool bSDFContent); void SetChildWithText(); - void CutComment( ByteString &rText ); + void CutComment( rtl::OString &rText ); public: Export(const rtl::OString &rOutput, sal_Bool bWrite, @@ -386,20 +384,21 @@ public: * Purpose: holds information of data to merge (one pform) ******************************************************************************/ -class PFormEntrys : public ByteString +class PFormEntrys { friend class MergeDataFile; private: - ByteString sHelpText; // empty string - ByteStringHashMap sText; - ByteStringBoolHashMap bTextFirst; - ByteStringHashMap sQuickHelpText; - ByteStringBoolHashMap bQuickHelpTextFirst; - ByteStringHashMap sTitle; - ByteStringBoolHashMap bTitleFirst; + rtl::OString data_; //TODO + rtl::OString sHelpText; // empty string + OStringHashMap sText; + OStringBoolHashMap bTextFirst; + OStringHashMap sQuickHelpText; + OStringBoolHashMap bQuickHelpTextFirst; + OStringHashMap sTitle; + OStringBoolHashMap bTitleFirst; public: - PFormEntrys( const ByteString &rPForm ) : ByteString( rPForm ) {}; + PFormEntrys( const rtl::OString &rPForm ) : data_( rPForm ) {}; rtl::OString Dump(); void InsertEntry(const rtl::OString &rId, const rtl::OString &rText, const rtl::OString &rQuickHelpText, const rtl::OString &rTitle) @@ -412,8 +411,8 @@ public: sTitle[ rId ] = rTitle; bTitleFirst[ rId ] = true; } - sal_Bool GetText( ByteString &rReturn, sal_uInt16 nTyp, const ByteString &nLangIndex, sal_Bool bDel = sal_False ); - sal_Bool GetTransex3Text( ByteString &rReturn, sal_uInt16 nTyp, const ByteString &nLangIndex, sal_Bool bDel = sal_False ); + sal_Bool GetText( rtl::OString &rReturn, sal_uInt16 nTyp, const rtl::OString &nLangIndex, sal_Bool bDel = sal_False ); + sal_Bool GetTransex3Text( rtl::OString &rReturn, sal_uInt16 nTyp, const rtl::OString &nLangIndex, sal_Bool bDel = sal_False ); }; @@ -461,7 +460,7 @@ class MergeDataFile { private: sal_Bool bErrorLog; - ByteString sErrorLog; + rtl::OString sErrorLog; SvFileStream aErrLog; MergeDataHashMap aMap; std::set<rtl::OString> aLanguageSet; diff --git a/l10ntools/inc/gsicheck.hxx b/l10ntools/inc/gsicheck.hxx index 2915c693ddad..3a6fc547d670 100644 --- a/l10ntools/inc/gsicheck.hxx +++ b/l10ntools/inc/gsicheck.hxx @@ -37,20 +37,19 @@ // enum LineFormat { FORMAT_SDF, FORMAT_UNKNOWN }; -class GSILine : public ByteString +class GSILine { private: - ParserMessageList aMessages; LineFormat aFormat; sal_uLong nLineNumber; - ByteString aUniqId; - ByteString aLineType; - ByteString aLangId; - ByteString aText; - ByteString aQuickHelpText; - ByteString aTitle; + rtl::OString aUniqId; + rtl::OString aLineType; + rtl::OString aLangId; + rtl::OString aText; + rtl::OString aQuickHelpText; + rtl::OString aTitle; sal_Bool bOK; sal_Bool bFixed; @@ -58,22 +57,24 @@ private: void ReassembleLine(); public: - GSILine( const ByteString &rLine, sal_uLong nLine ); + rtl::OString data_; + + GSILine( const rtl::OString &rLine, sal_uLong nLine ); LineFormat GetLineFormat() const { return aFormat; } sal_uLong GetLineNumber() const { return nLineNumber; } - ByteString const GetUniqId() const { return aUniqId; } - ByteString const GetLineType() const { return aLineType; } - ByteString const GetLanguageId() const { return aLangId; } - ByteString const GetText() const { return aText; } - String const GetUText() const { return String( aText, RTL_TEXTENCODING_UTF8 ); } - ByteString const GetQuickHelpText() const { return aQuickHelpText; } - ByteString const GetTitle() const { return aTitle; } + rtl::OString const GetUniqId() const { return aUniqId; } + rtl::OString const GetLineType() const { return aLineType; } + rtl::OString const GetLanguageId() const { return aLangId; } + rtl::OString const GetText() const { return aText; } + rtl::OUString const GetUText() const { return rtl::OStringToOUString( aText, RTL_TEXTENCODING_UTF8 ); } + rtl::OString const GetQuickHelpText() const { return aQuickHelpText; } + rtl::OString const GetTitle() const { return aTitle; } void SetUText( String &aNew ) { aText = rtl::OUStringToOString(aNew, RTL_TEXTENCODING_UTF8); ReassembleLine(); } - void SetText( ByteString &aNew ) { aText = aNew; ReassembleLine(); } - void SetQuickHelpText( ByteString &aNew ) { aQuickHelpText = aNew; ReassembleLine(); } - void SetTitle( ByteString &aNew ) { aTitle = aNew; ReassembleLine(); } + void SetText( rtl::OString const &aNew ) { aText = aNew; ReassembleLine(); } + void SetQuickHelpText( rtl::OString const &aNew ) { aQuickHelpText = aNew; ReassembleLine(); } + void SetTitle( rtl::OString const &aNew ) { aTitle = aNew; ReassembleLine(); } ParserMessageList* GetMessageList() { return &aMessages; }; sal_Bool HasMessages(){ return ( aMessages.size() > 0 ); }; @@ -99,7 +100,7 @@ private: GSIBlock_Impl maList; GSILine *pSourceLine; GSILine *pReferenceLine; - void PrintList( ParserMessageList *pList, ByteString aPrefix, GSILine *pLine ); + void PrintList( ParserMessageList *pList, rtl::OString const & aPrefix, GSILine *pLine ); sal_Bool bPrintContext; sal_Bool bCheckSourceLang; sal_Bool bCheckTranslationLang; @@ -108,15 +109,15 @@ private: sal_Bool bHasBlockError; - sal_Bool IsUTF8( const ByteString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, ByteString &aErrorMsg, sal_Bool &bHasBeenFixed, ByteString &aFixed ) const; + sal_Bool IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, rtl::OString &aErrorMsg, sal_Bool &bHasBeenFixed, rtl::OString &aFixed ) const; sal_Bool TestUTF8( GSILine* pTestee, sal_Bool bFixTags ); sal_Bool HasSuspiciousChars( GSILine* pTestee, GSILine* pSource ); public: GSIBlock( sal_Bool PbPrintContext, sal_Bool bSource, sal_Bool bTrans, sal_Bool bRef, sal_Bool bAllowSusp ); ~GSIBlock(); - void PrintMessage( ByteString aType, ByteString aMsg, ByteString aPrefix, ByteString aContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ); - void PrintError( ByteString aMsg, ByteString aPrefix, ByteString aContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ); + void PrintMessage( rtl::OString const & aType, rtl::OString const & aMsg, rtl::OString const & aPrefix, rtl::OString const & aContext, sal_uLong nLine, rtl::OString const & aUniqueId = rtl::OString() ); + void PrintError( rtl::OString const & aMsg, rtl::OString const & aPrefix, rtl::OString const & aContext, sal_uLong nLine, rtl::OString const & aUniqueId = rtl::OString() ); void InsertLine( GSILine* pLine, const rtl::OString &rSourceLang); void SetReferenceLine( GSILine* pLine ); sal_Bool CheckSyntax( sal_uLong nLine, sal_Bool bRequireSourceLine, sal_Bool bFixTags ); diff --git a/l10ntools/inc/helpmerge.hxx b/l10ntools/inc/helpmerge.hxx index 3e8383ac1da0..6a347464cb62 100644 --- a/l10ntools/inc/helpmerge.hxx +++ b/l10ntools/inc/helpmerge.hxx @@ -39,43 +39,43 @@ class HelpParser { private: - ByteString sHelpFile; + rtl::OString sHelpFile; bool bUTF8; bool bHasInputList; #if OSL_DEBUG_LEVEL > 2 /// Debugmethod, prints the content of the map to stdout - static void Dump(LangHashMap* rElem_in , const ByteString sKey_in); + static void Dump(LangHashMap* rElem_in , const rtl::OString & sKey_in); /// Debugmethod, prints the content of the map to stdout static void Dump(XMLHashMap* rElem_in); #endif public: - HelpParser( const ByteString &rHelpFile, bool bUTF8 , bool bHasInputList ); + HelpParser( const rtl::OString &rHelpFile, bool bUTF8 , bool bHasInputList ); ~HelpParser(){}; /// Method creates/append a SDF file with the content of a parsed XML file /// @PRECOND rHelpFile is valid - static bool CreateSDF( const ByteString &rSDFFile_in, const ByteString &rPrj_in, const ByteString &rRoot_in, - const ByteString &sHelpFile, XMLFile *pXmlFile, const ByteString &rGsi1 ); + static bool CreateSDF( const rtl::OString &rSDFFile_in, const rtl::OString &rPrj_in, const rtl::OString &rRoot_in, + const rtl::OString &sHelpFile, XMLFile *pXmlFile, const rtl::OString &rGsi1 ); static void parse_languages( std::vector<rtl::OString>& aLanguages , MergeDataFile& aMergeDataFile ); /// Method merges the String from the SDFfile into XMLfile. Both Strings must /// point to existing files. - bool Merge( const ByteString &rSDFFile_in, const ByteString &rDestinationFile_in , + bool Merge( const rtl::OString &rSDFFile_in, const rtl::OString &rDestinationFile_in , const rtl::OString& sLanguage , MergeDataFile& aMergeDataFile ); - bool Merge( const ByteString &rSDFFile, const ByteString &rPathX , const ByteString &rPathY , bool bISO + bool Merge( const rtl::OString &rSDFFile, const rtl::OString &rPathX , const rtl::OString &rPathY , bool bISO , const std::vector<rtl::OString>& aLanguages , MergeDataFile& aMergeDataFile , bool bCreateDir ); private: static rtl::OString makeAbsolutePath(const rtl::OString& sHelpFile , const rtl::OString& rRoot_in); - ByteString GetOutpath( const ByteString& rPathX , const ByteString& sCur , const ByteString& rPathY ); - bool MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const ByteString& sLanguage , ByteString sPath ); + rtl::OString GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY ); + bool MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const rtl::OString& sLanguage , rtl::OString const & sPath ); - void ProcessHelp( LangHashMap* aLangHM , const ByteString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ); + void ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ); void MakeDir(const rtl::OString& rPath); }; diff --git a/l10ntools/inc/lngmerge.hxx b/l10ntools/inc/lngmerge.hxx index 2a4a0d31db1f..d6a0ebd4e2cf 100644 --- a/l10ntools/inc/lngmerge.hxx +++ b/l10ntools/inc/lngmerge.hxx @@ -55,8 +55,8 @@ private: bool isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in); void ReadLine(const rtl::OString &rLine_in, - ByteStringHashMap &rText_inout); - void WriteSDF(SvFileStream &aSDFStream, ByteStringHashMap &rText_inout, + OStringHashMap &rText_inout); + void WriteSDF(SvFileStream &aSDFStream, OStringHashMap &rText_inout, const rtl::OString &rPrj, const rtl::OString &rRoot, const rtl::OString &rActFileName, const rtl::OString &rID); public: diff --git a/l10ntools/inc/xmlparse.hxx b/l10ntools/inc/xmlparse.hxx index c6fe74055080..3b3e4baa9108 100644 --- a/l10ntools/inc/xmlparse.hxx +++ b/l10ntools/inc/xmlparse.hxx @@ -64,30 +64,31 @@ using namespace std; /** Holds data of Attributes */ -class XMLAttribute : public String +class XMLAttribute { private: - String sValue; + rtl::OUString sName; + rtl::OUString sValue; public: /// creates an attribute XMLAttribute( - const String &rName, // attributes name - const String &rValue // attributes data + const rtl::OUString &rName, // attributes name + const rtl::OUString &rValue // attributes data ) - : String( rName ), sValue( rValue ) {} + : sName( rName ), sValue( rValue ) {} - /// getting value of an attribue - const String &GetValue() { return sValue; } + rtl::OUString GetName() const { return sName; } + rtl::OUString GetValue() const { return sValue; } - void setValue(const String &rValue){sValue=rValue;} + void setValue(const rtl::OUString &rValue){sValue=rValue;} /// returns true if two attributes are equal and have the same value sal_Bool IsEqual( const XMLAttribute &rAttribute // the attribute which has to be equal ) { - return (( rAttribute == *this ) && ( rAttribute.sValue == sValue )); + return (( rAttribute.sName == sName ) && ( rAttribute.sValue == sValue )); } }; @@ -172,7 +173,6 @@ public: XMLChildNode *pChild , size_t pos /// the new child ); - virtual int GetPosition( ByteString id ); int RemoveChild( XMLElement *pRefElement ); void RemoveAndDeleteAllChildren(); @@ -204,18 +204,17 @@ class XMLFile : public XMLParentNode { public: XMLFile( - const String &rFileName // the file name, empty if created from memory stream + const rtl::OUString &rFileName // the file name, empty if created from memory stream ); XMLFile( const XMLFile& obj ) ; ~XMLFile(); - ByteString* GetGroupID(std::deque<rtl::OString> &groupid); void Print( XMLNode *pCur = NULL, sal_uInt16 nLevel = 0 ); virtual void SearchL10NElements( XMLParentNode *pCur, int pos = 0 ); void Extract( XMLFile *pCur = NULL ); XMLHashMap* GetStrings(){return XMLStrings;} - sal_Bool Write( ByteString &rFilename ); + sal_Bool Write( rtl::OString const &rFilename ); sal_Bool Write( ofstream &rStream , XMLNode *pCur = NULL ); bool CheckExportStatus( XMLParentNode *pCur = NULL );// , int pos = 0 ); @@ -277,7 +276,7 @@ class XMLElement : public XMLParentNode private: String sElementName; XMLAttributeList *pAttributes; - ByteString project, + rtl::OString project, filename, id, sOldRef, @@ -332,23 +331,23 @@ public: /// returns a attribute XMLAttribute *GetAttribute( - const String &rName // the attribute name + const rtl::OUString &rName // the attribute name ); - void SetProject ( ByteString prj ){ project = prj; } - void SetFileName ( ByteString fn ){ filename = fn; } - void SetId ( ByteString theId ){ id = theId; } - void SetResourceType ( ByteString rt ){ resourceType = rt; } - void SetLanguageId ( ByteString lid ){ languageId = lid; } + void SetProject ( rtl::OString const & prj ){ project = prj; } + void SetFileName ( rtl::OString const & fn ){ filename = fn; } + void SetId ( rtl::OString const & theId ){ id = theId; } + void SetResourceType ( rtl::OString const & rt ){ resourceType = rt; } + void SetLanguageId ( rtl::OString const & lid ){ languageId = lid; } void SetPos ( int nPos_in ){ nPos = nPos_in; } - void SetOldRef ( ByteString sOldRef_in ){ sOldRef = sOldRef_in; } + void SetOldRef ( rtl::OString const & sOldRef_in ){ sOldRef = sOldRef_in; } virtual int GetPos() { return nPos; } - ByteString GetProject() { return project; } - ByteString GetFileName() { return filename; } - ByteString GetId() { return id; } - ByteString GetOldref() { return sOldRef; } - ByteString GetResourceType(){ return resourceType; } - ByteString GetLanguageId() { return languageId; } + rtl::OString GetProject() { return project; } + rtl::OString GetFileName() { return filename; } + rtl::OString GetId() { return id; } + rtl::OString GetOldref() { return sOldRef; } + rtl::OString GetResourceType(){ return resourceType; } + rtl::OString GetLanguageId() { return languageId; } }; diff --git a/l10ntools/source/cfglex.l b/l10ntools/source/cfglex.l index 94648a6a35f7..f1daee6711fa 100644 --- a/l10ntools/source/cfglex.l +++ b/l10ntools/source/cfglex.l @@ -34,18 +34,8 @@ int yycolumn = 1; #define YY_USER_ACTION yycolumn += yyleng; /* external functions (C++ code, declared as extren "C" */ -extern int WorkOnTokenSet( int, char* ); -extern int InitCfgExport( char * , char *); -extern int EndCfgExport(); -extern int GetError(); -extern int SetError(); -extern char *GetOutputFile( int argc, char* argv[]); -extern FILE *GetCfgFile(); -extern int isQuiet(); -extern void removeTempFile(); -extern char* getFilename(); -/* forwards */ -void YYWarning(); +extern void workOnTokenSet( int, char* ); +extern FILE * init(int, char **); int bText=0; %} @@ -58,28 +48,28 @@ int bText=0; \<[^\>]*"xml:lang="\""x-no-translate"\"[^\<]*\/\> { bText = 0; - WorkOnTokenSet( CFG_TOKEN_NO_TRANSLATE, yytext ); + workOnTokenSet( CFG_TOKEN_NO_TRANSLATE, yytext ); } \<.*\/\> { bText = 0; - WorkOnTokenSet( ANYTOKEN, yytext ); + workOnTokenSet( ANYTOKEN, yytext ); } \<[^\>]*"xml:lang="\".*\"[^\<]*\> { bText = 1; - WorkOnTokenSet( CFG_TEXT_START, yytext ); + workOnTokenSet( CFG_TEXT_START, yytext ); } \<[^\/\!][^\>]*\> { bText = 0; - WorkOnTokenSet( CFG_TAG, yytext ); + workOnTokenSet( CFG_TAG, yytext ); } "<!"DOCTYPE[^\>]*\> { bText = 0; - WorkOnTokenSet( CFG_TAG, yytext ); + workOnTokenSet( CFG_TAG, yytext ); } @@ -89,8 +79,8 @@ int bText=0; pChar[1] = 0x00; pChar[0] = c3; - WorkOnTokenSet( COMMEND, yytext ); - WorkOnTokenSet( COMMEND, pChar ); + workOnTokenSet( COMMEND, yytext ); + workOnTokenSet( COMMEND, pChar ); for(;;) { if ( c3 == EOF ) @@ -101,29 +91,29 @@ int bText=0; c2 = c3; c3 = input(); pChar[0] = c3; - WorkOnTokenSet( COMMEND, pChar ); + workOnTokenSet( COMMEND, pChar ); } } \<\/[^\>]*\> { bText = 0; - WorkOnTokenSet( CFG_CLOSETAG, yytext ); + workOnTokenSet( CFG_CLOSETAG, yytext ); } \<[^\>\!]*\> { bText = 0; if ( yytext[ 1 ] == '!' && yytext[ 2 ] == '-' && yytext[ 3 ] == '-' ) - WorkOnTokenSet( COMMEND, yytext ); + workOnTokenSet( COMMEND, yytext ); else - WorkOnTokenSet( CFG_UNKNOWNTAG, yytext ); + workOnTokenSet( CFG_UNKNOWNTAG, yytext ); } .|\n { yycolumn = 1; if ( bText == 1 ) - WorkOnTokenSet( CFG_TEXTCHAR, yytext ); + workOnTokenSet( CFG_TEXTCHAR, yytext ); else - WorkOnTokenSet( UNKNOWNCHAR, yytext ); + workOnTokenSet( UNKNOWNCHAR, yytext ); } @@ -156,63 +146,15 @@ void yyerror ( const char *s ) /* write error to stderr */ fprintf( stderr, "Error: \"%s\" in line %d, column %d: \"%s\"\n", s, yylineno, yycolumn, yytext ); - SetError(); + exit(EXIT_FAILURE); } -/*****************************************************************************/ int -#ifdef WNT +#if defined WNT _cdecl #endif -main( int argc, char* argv[]) -/*****************************************************************************/ -{ - /* error level */ - int nRetValue = 0; - char *pOutput; - FILE *pFile; - - pOutput = GetOutputFile( argc, argv ); - - if ( !pOutput ) { - fprintf( stdout, "Syntax: CFGEX[-p Prj][-r PrjRoot]-i FileIn [-o FileOut][-m DataBase][-e][-b][-u][-f][-d DoneFile][-g[:dtd] ][-L l1,l2,...]\n" ); - fprintf( stdout, " Prj: Project\n" ); - fprintf( stdout, " PrjRoot: Path to project root (..\\.. etc.)\n" ); - fprintf( stdout, " FileIn: Source files (*.src)\n" ); - fprintf( stdout, " FileOut: Destination file (*.*)\n" ); - fprintf( stdout, " DataBase: Mergedata (*.sdf)\n" ); - fprintf( stdout, " -e: Disable writing errorlog\n" ); - fprintf( stdout, " -b: Break when Token \"HelpText\" found in source\n" ); - fprintf( stdout, " -u: [english] and [german] are allowed, Id is Taken from DataBase \n" ); - fprintf( stdout, " -f: force extraction and merge even if only one language is existent\n" ); - fprintf( stdout, " -g[:dtd]: enables generation of properties (dtds if :dtd is set) - in this case FileOut is the output path\n" ); - fprintf( stdout, " -d: enables generation of *.don if work is done\n" ); - fprintf( stdout, " -L: Restrict the handled languages. l1,l2,... are elements of (de,en-US...)\n" ); - fprintf( stdout, " f1, f2,... are also elements of (de,en-US...)\n" ); - return 1; - } - - pFile = GetCfgFile(); - InitCfgExport( pOutput , getFilename() ); - if ( !pFile ) - return 1; - - yyin = pFile; - - /* create global instance of class CfgExport */ - //InitCfgExport( pOutput ); - - /* start parser */ - yylex(); - - /* get error info. and end export */ - nRetValue = GetError(); - EndCfgExport(); - - - removeTempFile(); -/* return error level */ - return nRetValue; +main(int argc, char ** argv) { + yyin = init(argc, argv); + yylex(); + return EXIT_SUCCESS; } - - diff --git a/l10ntools/source/cfgmerge.cxx b/l10ntools/source/cfgmerge.cxx index 13cf715ba1f7..fded669b8f00 100644 --- a/l10ntools/source/cfgmerge.cxx +++ b/l10ntools/source/cfgmerge.cxx @@ -26,256 +26,216 @@ * ************************************************************************/ -#include <stdio.h> +#include "sal/config.h" + +#include <cstdio> +#include <cstdlib> +#include <cstring> + +#include "boost/scoped_ptr.hpp" +#include "osl/process.h" +#include "rtl/uri.hxx" + #include <comphelper/string.hxx> -#include <tools/string.hxx> -#include <tools/fsys.hxx> -// local includes +#include "helper.hxx" #include "export.hxx" #include "cfgmerge.hxx" #include "tokens.h" using comphelper::string::getToken; -extern "C" { int yyerror(const char *); } -extern "C" { int YYWarning(const char *); } - -// defines to parse command line -#define STATE_NON 0x0001 -#define STATE_INPUT 0x0002 -#define STATE_OUTPUT 0x0003 -#define STATE_PRJ 0x0004 -#define STATE_ROOT 0x0005 -#define STATE_MERGESRC 0x0006 -#define STATE_ERRORLOG 0x0007 -#define STATE_UTF8 0x0008 -#define STATE_LANGUAGES 0X0009 -#define STATE_FORCE 0x000B - -// set of global variables -sal_Bool bEnableExport; -sal_Bool bMergeMode; -sal_Bool bErrorLog; -sal_Bool bForce; -sal_Bool bUTF8; -ByteString sPrj; -ByteString sPrjRoot; -ByteString sInputFileName; -ByteString sActFileName; -rtl::OString sFullEntry; -rtl::OString sOutputFile; -rtl::OString sMergeSrc; -String sUsedTempFile; - -CfgParser *pParser; - -extern "C" { -// the whole interface to lexer is in this extern "C" section - -/*****************************************************************************/ -extern char *GetOutputFile( int argc, char* argv[]) -/*****************************************************************************/ -{ - bEnableExport = sal_False; - bMergeMode = sal_False; - bErrorLog = sal_True; - bForce = sal_False; - bUTF8 = sal_True; - sPrj = ""; - sPrjRoot = ""; - sInputFileName = ""; - sActFileName = ""; - - sal_uInt16 nState = STATE_NON; - sal_Bool bInput = sal_False; - - // parse command line - for( int i = 1; i < argc; i++ ) { - ByteString sSwitch( argv[ i ] ); - sSwitch.ToUpperAscii(); - - if ( sSwitch == "-I" ) { - nState = STATE_INPUT; // next token specifies source file - } - else if ( sSwitch == "-O" ) { - nState = STATE_OUTPUT; // next token specifies the dest file - } - else if ( sSwitch == "-P" ) { - nState = STATE_PRJ; // next token specifies the cur. project - } - else if ( sSwitch == "-R" ) { - nState = STATE_ROOT; // next token specifies path to project root - } - else if ( sSwitch == "-M" ) { - nState = STATE_MERGESRC; // next token specifies the merge database - } - else if ( sSwitch == "-E" ) { - nState = STATE_ERRORLOG; - bErrorLog = sal_False; - } - else if ( sSwitch == "-F" ) { - nState = STATE_FORCE; - bForce = sal_True; - } - else if ( sSwitch == "-L" ) { - nState = STATE_LANGUAGES; - } - else { - switch ( nState ) { - case STATE_NON: { - return NULL; // no valid command line - } - case STATE_INPUT: { - sInputFileName = argv[ i ]; - bInput = sal_True; // source file found - } +extern "C" { int yyerror(char const *); } + +namespace { + +namespace global { + +bool mergeMode = false; +bool errorLog = true; +char const * prj = 0; +char const * prjRoot = 0; +char const * inputPathname = 0; +char const * outputPathname = 0; +char const * mergeSrc; +boost::scoped_ptr< CfgParser > parser; + +} + +void badArguments() { +} + +void handleArguments(int argc, char ** argv) { + enum State { + STATE_NONE, STATE_INPUT, STATE_OUTPUT, STATE_PRJ, STATE_ROOT, + STATE_MERGESRC, STATE_LANGUAGES }; + State state = STATE_NONE; + for (int i = 1; i < argc; ++i) { + if (std::strcmp(argv[i], "-i") == 0) { + state = STATE_INPUT; + } else if (std::strcmp(argv[i], "-o") == 0) { + state = STATE_OUTPUT; + } else if (std::strcmp(argv[i], "-p") == 0) { + state = STATE_PRJ; + } else if (std::strcmp(argv[i], "-r") == 0) { + state = STATE_ROOT; + } else if (std::strcmp(argv[i], "-m") == 0) { + state = STATE_MERGESRC; + } else if (std::strcmp(argv[i], "-e") == 0) { + state = STATE_NONE; + global::errorLog = false; + } else if (std::strcmp(argv[i], "-l") == 0) { + state = STATE_LANGUAGES; + } else { + switch (state) { + default: + global::inputPathname = 0; // no valid command line + goto done; + case STATE_INPUT: + global::inputPathname = argv[i]; break; - case STATE_OUTPUT: { - sOutputFile = argv[ i ]; // the dest. file - } + case STATE_OUTPUT: + global::outputPathname = argv[i]; break; - case STATE_PRJ: { - sPrj = ByteString( argv[ i ]); -// sPrj.ToLowerAscii(); // the project - } + case STATE_PRJ: + global::prj = argv[i]; break; - case STATE_ROOT: { - sPrjRoot = ByteString( argv[ i ]); // path to project root - } + case STATE_ROOT: + global::prjRoot = argv[i]; break; - case STATE_MERGESRC: { - sMergeSrc = rtl::OString(argv[i]); - bMergeMode = sal_True; // activate merge mode, cause merge database found - } + case STATE_MERGESRC: + global::mergeSrc = argv[i]; + global::mergeMode = true; break; - case STATE_LANGUAGES: { - Export::sLanguages = ByteString( argv[ i ]); - } + case STATE_LANGUAGES: + Export::sLanguages = argv[i]; break; } + state = STATE_NONE; } } - - if ( bInput ) { - // command line is valid - bEnableExport = sal_True; - char *pReturn = new char[ sOutputFile.getLength() + 1 ]; - strcpy( pReturn, sOutputFile.getStr()); // #100211# - checked - return pReturn; +done: + if (global::inputPathname == 0 || global::outputPathname == 0) { + std::fprintf( + stderr, + ("Syntax: cfgex [-p Prj] [-r PrjRoot] -i FileIn -o FileOut" + " [-m DataBase] [-e] [-l l1,l2,...]\n" + " Prj: Project\n" + " PrjRoot: Path to project root (../.. etc.)\n" + " FileIn: Source files (*.src)\n" + " FileOut: Destination file (*.*)\n" + " DataBase: Mergedata (*.sdf)\n" + " -e: Disable writing errorlog\n" + " -l: Restrict the handled languages; l1, l2, ... are elements of" + " (de, en-US, ...)\n")); + std::exit(EXIT_FAILURE); } - - // command line is not valid - return NULL; -} - -int InitCfgExport( char *pOutput , char* pFilename ) -{ - // instanciate Export - rtl::OString sOutput( pOutput ); - ByteString sFilename( pFilename ); Export::InitLanguages(); +} - if ( bMergeMode ) - pParser = new CfgMerge( sMergeSrc, sOutputFile, sFilename ); - else if ( sOutputFile.getLength()) - pParser = new CfgExport( sOutputFile, sPrj, sActFileName ); - - return 1; } -/*****************************************************************************/ -int EndCfgExport() -/*****************************************************************************/ -{ - delete pParser; +extern "C" { - return 1; -} +FILE * init(int argc, char ** argv) { + handleArguments(argc, argv); -void removeTempFile(){ - if( !sUsedTempFile.EqualsIgnoreCaseAscii( "" ) ){ - DirEntry aTempFile( sUsedTempFile ); - aTempFile.Kill(); + FILE * pFile = std::fopen(global::inputPathname, "r"); + if (pFile == 0) { + std::fprintf( + stderr, "Error: Cannot open file \"%s\"\n", + global::inputPathname); + std::exit(EXIT_FAILURE); } -} -extern const char* getFilename() -{ - return sInputFileName.GetBuffer(); -} -/*****************************************************************************/ -extern FILE *GetCfgFile() -/*****************************************************************************/ -{ - FILE *pFile = 0; - // look for valid filename - if ( sInputFileName.Len()) { - if( Export::fileHasUTF8ByteOrderMarker( sInputFileName ) ){ - DirEntry aTempFile = Export::GetTempFile(); - DirEntry aSourceFile( String( sInputFileName , RTL_TEXTENCODING_ASCII_US ) ); - aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE ); - String sTempFile = aTempFile.GetFull(); - Export::RemoveUTF8ByteOrderMarkerFromFile( rtl::OUStringToOString(sTempFile , RTL_TEXTENCODING_ASCII_US) ); - pFile = fopen(rtl::OUStringToOString(sTempFile , RTL_TEXTENCODING_ASCII_US).getStr(), "r"); - sUsedTempFile = sTempFile; - }else{ - // able to open file? - pFile = fopen( sInputFileName.GetBuffer(), "r" ); - sUsedTempFile = String::CreateFromAscii(""); + + // Skip UTF-8 BOM: + unsigned char buf[3]; + if (std::fread(buf, 1, 3, pFile) != 3 || + buf[0] != 0xEF || buf[1] != 0xBB || buf[2] != 0xBF) + { + std::rewind(pFile); + } + + if (global::mergeMode) { + global::parser.reset( + new CfgMerge( + global::mergeSrc, global::outputPathname, + global::inputPathname)); + } else { + rtl::OUString cwd; + if (osl_getProcessWorkingDir(&cwd.pData) != osl_Process_E_None) { + std::fprintf(stderr, "Error: Cannot determine cwd\n"); + std::exit(EXIT_FAILURE); + } + rtl::OUString full; + if (!rtl_convertStringToUString( + &full.pData, global::inputPathname, + rtl_str_getLength(global::inputPathname), + osl_getThreadTextEncoding(), + (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR + | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR + | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))) + { + std::fprintf( + stderr, "Error: Cannot convert input pathname to UTF-16\n"); + std::exit(EXIT_FAILURE); + } + if (osl::FileBase::getAbsoluteFileURL(cwd, full, full) + != osl::FileBase::E_None) + { + std::fprintf( + stderr, + "Error: Cannot convert input pathname to absolute URL\n"); + std::exit(EXIT_FAILURE); + } + if (global::prjRoot == 0) { + std::fprintf(stderr, "Error: No project root argument\n"); + std::exit(EXIT_FAILURE); + } + rtl::OUString base; + if (!rtl_convertStringToUString( + &base.pData, global::prjRoot, + rtl_str_getLength(global::prjRoot), + osl_getThreadTextEncoding(), + (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR + | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR + | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))) + { + std::fprintf( + stderr, "Error: Cannot convert project root to UTF-16\n"); + std::exit(EXIT_FAILURE); } - if ( !pFile ){ - fprintf( stderr, "Error: Could not open file %s\n", - sInputFileName.GetBuffer()); - exit( -13 ); + base = rtl::Uri::convertRelToAbs(full, base); + if (full.getLength() <= base.getLength() || base.isEmpty() + || base[base.getLength() - 1] != '/' + || full[base.getLength() - 1] != '/') + { + std::fprintf( + stderr, "Error: Cannot extract suffix from input pathname\n"); + std::exit(EXIT_FAILURE); } - else { - // this is a valid file which can be opened, so - // create path to project root - DirEntry aEntry( String( sInputFileName, RTL_TEXTENCODING_ASCII_US )); - aEntry.ToAbs(); - sFullEntry = rtl::OUStringToOString(aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US); - aEntry += DirEntry( String( "..", RTL_TEXTENCODING_ASCII_US )); - aEntry += DirEntry( sPrjRoot ); - rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US)); - - // create file name, beginnig with project root - // (e.g.: source\ui\src\menue.src) -// printf("sFullEntry = %s\n",sFullEntry.getStr()); - sActFileName = sFullEntry.copy(sPrjEntry.getLength() + 1); -// printf("sActFileName = %s\n",sActFileName.GetBuffer()); - - sActFileName.SearchAndReplaceAll( "/", "\\" ); - - return pFile; + full = full.copy(base.getLength()).replace('/', '\\'); + rtl::OString suffix; + if (!full.convertToString( + &suffix, osl_getThreadTextEncoding(), + (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR + | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR))) + { + std::fprintf( + stderr, "Error: Cannot convert suffix from UTF-16\n"); + std::exit(EXIT_FAILURE); } + global::parser.reset( + new CfgExport(global::outputPathname, global::prj, suffix)); } - // this means the file could not be opened - return NULL; -} -/*****************************************************************************/ -int WorkOnTokenSet( int nTyp, char *pTokenText ) -/*****************************************************************************/ -{ - pParser->Execute( nTyp, pTokenText ); - - return 1; + return pFile; } - -/*****************************************************************************/ -int SetError() -/*****************************************************************************/ -{ - return 1; +void workOnTokenSet(int nTyp, char * pTokenText) { + global::parser->Execute( nTyp, pTokenText ); } -/*****************************************************************************/ -int GetError() -/*****************************************************************************/ -{ - return 0; -} } // @@ -356,19 +316,19 @@ sal_Bool CfgParser::IsTokenClosed(const rtl::OString &rToken) /*****************************************************************************/ void CfgParser::AddText( - ByteString &rText, - const ByteString &rIsoLang, - const ByteString &rResTyp + rtl::OString &rText, + const rtl::OString &rIsoLang, + const rtl::OString &rResTyp ) /*****************************************************************************/ { - sal_uInt16 nTextLen = 0; - while ( rText.Len() != nTextLen ) { - nTextLen = rText.Len(); - rText.SearchAndReplaceAll( "\n", " " ); - rText.SearchAndReplaceAll( "\r", " " ); - rText.SearchAndReplaceAll( "\t", " " ); - rText.SearchAndReplaceAll( " ", " " ); + sal_Int32 nTextLen = 0; + while ( rText.getLength() != nTextLen ) { + nTextLen = rText.getLength(); + rText = rText.replace( '\n', ' ' ); + rText = rText.replace( '\r', ' ' ); + rText = rText.replace( '\t', ' ' ); + while (helper::searchAndReplace(&rText, " ", " ") != -1) {} } pStackData->sResTyp = rResTyp; WorkOnText( rText, rIsoLang ); @@ -380,13 +340,13 @@ void CfgParser::AddText( int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) /*****************************************************************************/ { - ByteString sToken( pToken ); + rtl::OString sToken( pToken ); if ( sToken == " " || sToken == "\t" ) sLastWhitespace += sToken; rtl::OString sTokenName; - ByteString sTokenId; + rtl::OString sTokenId; sal_Bool bOutput = sal_True; @@ -404,7 +364,7 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) sTokenName = getToken(getToken(getToken(sToken, 1, '<'), 0, '>'), 0, ' '); if ( !IsTokenClosed( sToken )) { - ByteString sSearch; + rtl::OString sSearch; switch ( nToken ) { case CFG_TOKEN_PACKAGE: sSearch = "package-id="; @@ -428,15 +388,15 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) case CFG_TEXT_START: { if ( sCurrentResTyp != sTokenName ) { WorkOnRessourceEnd(); - ByteString sCur; + rtl::OString sCur; for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - pStackData->sText[ sCur ] = ByteString(""); + pStackData->sText[ sCur ] = rtl::OString(); } } sCurrentResTyp = sTokenName; - ByteString sTemp = sToken.Copy( sToken.Search( "xml:lang=" )); + rtl::OString sTemp = sToken.copy( sToken.indexOf( "xml:lang=" )); sCurrentIsoLang = getToken(getToken(sTemp, 1, '\"'), 0, '\"'); if ( sCurrentIsoLang == NO_TRANSLATE_ISO ) @@ -448,27 +408,26 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) } break; } - if ( sSearch.Len()) + if ( !sSearch.isEmpty()) { - rtl::OString sTemp = sToken.Copy( sToken.Search( sSearch )); + rtl::OString sTemp = sToken.copy( sToken.indexOf( sSearch )); sTokenId = getToken(getToken(sTemp, 1, '\"'), 0, '\"'); } pStackData = aStack.Push( sTokenName, sTokenId ); if ( sSearch == "cfg:name=" ) { - ByteString sTemp( sToken ); - sTemp.ToUpperAscii(); - bLocalize = (( sTemp.Search( "CFG:TYPE=\"STRING\"" ) != STRING_NOTFOUND ) && - ( sTemp.Search( "CFG:LOCALIZED=\"sal_True\"" ) != STRING_NOTFOUND )); + rtl::OString sTemp( sToken.toAsciiUpperCase() ); + bLocalize = (( sTemp.indexOf( "CFG:TYPE=\"STRING\"" ) != -1 ) && + ( sTemp.indexOf( "CFG:LOCALIZED=\"sal_True\"" ) != -1 )); } } else if ( sTokenName == "label" ) { if ( sCurrentResTyp != sTokenName ) { WorkOnRessourceEnd(); - ByteString sCur; + rtl::OString sCur; for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - pStackData->sText[ sCur ] = ByteString(""); + pStackData->sText[ sCur ] = rtl::OString(); } } sCurrentResTyp = sTokenName; @@ -479,20 +438,20 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) sTokenName = getToken(getToken(getToken(sToken, 1, '/'), 0, '>'), 0, ' '); if ( aStack.GetStackData() && ( aStack.GetStackData()->GetTagType() == sTokenName )) { - if (!sCurrentText.Len()) + if (sCurrentText.isEmpty()) WorkOnRessourceEnd(); aStack.Pop(); pStackData = aStack.GetStackData(); } else { - ByteString sError( "Misplaced close tag: " ); - ByteString sInFile(" in file "); + rtl::OString sError( "Misplaced close tag: " ); + rtl::OString sInFile(" in file "); sError += sToken; sError += sInFile; - sError += sFullEntry; + sError += global::inputPathname; Error( sError ); - exit ( 13 ); + std::exit(EXIT_FAILURE); } break; @@ -506,11 +465,11 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) break; } - if ( sCurrentText.Len() && nToken != CFG_TEXTCHAR ) + if ( !sCurrentText.isEmpty() && nToken != CFG_TEXTCHAR ) { AddText( sCurrentText, sCurrentIsoLang, sCurrentResTyp ); Output( sCurrentText ); - sCurrentText = ""; + sCurrentText = rtl::OString(); pStackData->sEndTextTag = sToken; } @@ -531,21 +490,21 @@ void CfgExport::Output(const rtl::OString&) int CfgParser::Execute( int nToken, char * pToken ) /*****************************************************************************/ { - ByteString sToken( pToken ); + rtl::OString sToken( pToken ); switch ( nToken ) { case CFG_TAG: - if ( sToken.Search( "package-id=" ) != STRING_NOTFOUND ) + if ( sToken.indexOf( "package-id=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_PACKAGE, pToken ); - else if ( sToken.Search( "component-id=" ) != STRING_NOTFOUND ) + else if ( sToken.indexOf( "component-id=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_COMPONENT, pToken ); - else if ( sToken.Search( "template-id=" ) != STRING_NOTFOUND ) + else if ( sToken.indexOf( "template-id=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_TEMPLATE, pToken ); - else if ( sToken.Search( "cfg:name=" ) != STRING_NOTFOUND ) + else if ( sToken.indexOf( "cfg:name=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_OORNAME, pToken ); - else if ( sToken.Search( "oor:name=" ) != STRING_NOTFOUND ) + else if ( sToken.indexOf( "oor:name=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_OORNAME, pToken ); - else if ( sToken.Search( "oor:value=" ) != STRING_NOTFOUND ) + else if ( sToken.indexOf( "oor:value=" ) != -1 ) return ExecuteAnalyzedToken( CFG_TOKEN_OORVALUE, pToken ); break; } @@ -577,7 +536,7 @@ CfgOutputParser::CfgOutputParser(const rtl::OString &rOutputFile) Error(sError.makeStringAndClear()); delete pOutputStream; pOutputStream = NULL; - exit( -13 ); + std::exit(EXIT_FAILURE); } } @@ -597,9 +556,9 @@ CfgOutputParser::~CfgOutputParser() /*****************************************************************************/ CfgExport::CfgExport( - const ByteString &rOutputFile, - const ByteString &rProject, - const ByteString &rFilePath + const rtl::OString &rOutputFile, + const rtl::OString &rProject, + const rtl::OString &rFilePath ) /*****************************************************************************/ : CfgOutputParser( rOutputFile ), @@ -621,15 +580,11 @@ void CfgExport::WorkOnRessourceEnd() /*****************************************************************************/ { if ( pOutputStream && bLocalize ) { - if (( pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US"))].getLength() - ) || - ( bForce && - ( pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("de"))].getLength() || - pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US"))].getLength() ))) + if ( pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US"))].getLength() ) { - ByteString sFallback = pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US"))]; - ByteString sLocalId = pStackData->sIdentifier; - ByteString sGroupId; + rtl::OString sFallback = pStackData->sText[rtl::OString(RTL_CONSTASCII_STRINGPARAM("en-US"))]; + rtl::OString sLocalId = pStackData->sIdentifier; + rtl::OString sGroupId; if ( aStack.size() == 1 ) { sGroupId = sLocalId; sLocalId = ""; @@ -638,19 +593,19 @@ void CfgExport::WorkOnRessourceEnd() sGroupId = aStack.GetAccessPath( aStack.size() - 2 ); } - ByteString sTimeStamp( Export::GetTimeStamp()); + rtl::OString sTimeStamp( Export::GetTimeStamp()); for (size_t n = 0; n < aLanguages.size(); n++) { - ByteString sCur = aLanguages[ n ]; + rtl::OString sCur = aLanguages[ n ]; - ByteString sText = pStackData->sText[ sCur ]; - if ( !sText.Len()) + rtl::OString sText = pStackData->sText[ sCur ]; + if ( sText.isEmpty()) sText = sFallback; - Export::UnquotHTML( sText ); + sText = Export::UnquoteHTML( sText ); - ByteString sOutput( sPrj ); sOutput += "\t"; + rtl::OString sOutput( sPrj ); sOutput += "\t"; sOutput += sPath; sOutput += "\t0\t"; sOutput += pStackData->sResTyp; sOutput += "\t"; @@ -669,11 +624,11 @@ void CfgExport::WorkOnRessourceEnd() } void CfgExport::WorkOnText( - ByteString &rText, + rtl::OString &rText, const rtl::OString &rIsoLang ) { - if( rIsoLang.getLength() ) Export::UnquotHTML( rText ); + if( rIsoLang.getLength() ) rText = Export::UnquoteHTML( rText ); } @@ -693,7 +648,7 @@ CfgMerge::CfgMerge( if (rMergeSource.getLength()) { pMergeDataFile = new MergeDataFile( - rMergeSource, sInputFileName, bErrorLog, true ); + rMergeSource, global::inputPathname, global::errorLog, true ); if (Export::sLanguages.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("ALL"))) { Export::SetLanguages( pMergeDataFile->GetLanguages() ); @@ -713,22 +668,22 @@ CfgMerge::~CfgMerge() delete pResData; } -void CfgMerge::WorkOnText(ByteString &rText, const rtl::OString& rLangIndex) +void CfgMerge::WorkOnText(rtl::OString &rText, const rtl::OString& rLangIndex) { if ( pMergeDataFile && bLocalize ) { if ( !pResData ) { - ByteString sLocalId = pStackData->sIdentifier; - ByteString sGroupId; + rtl::OString sLocalId = pStackData->sIdentifier; + rtl::OString sGroupId; if ( aStack.size() == 1 ) { sGroupId = sLocalId; - sLocalId = ""; + sLocalId = rtl::OString(); } else { sGroupId = aStack.GetAccessPath( aStack.size() - 2 ); } - ByteString sPlatform( "" ); + rtl::OString sPlatform; pResData = new ResData( sPlatform, sGroupId , sFilename ); pResData->sId = sLocalId; @@ -740,13 +695,13 @@ void CfgMerge::WorkOnText(ByteString &rText, const rtl::OString& rLangIndex) PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrysCaseSensitive( pResData ); if ( pEntrys ) { - ByteString sContent; + rtl::OString sContent; pEntrys->GetText( sContent, STRING_TYP_TEXT, rLangIndex ); if ( Export::isAllowed( rLangIndex ) && - ( sContent != "-" ) && ( sContent.Len())) + ( sContent != "-" ) && !sContent.isEmpty()) { - Export::QuotHTML( rText ); + rText = Export::QuoteHTML( rText ); } } } @@ -763,41 +718,40 @@ void CfgMerge::WorkOnRessourceEnd() /*****************************************************************************/ { - if ( pMergeDataFile && pResData && bLocalize && (( bEnglish ) || bForce )) { + if ( pMergeDataFile && pResData && bLocalize && bEnglish ) { PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrysCaseSensitive( pResData ); if ( pEntrys ) { - ByteString sCur; + rtl::OString sCur; for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sContent; + rtl::OString sContent; pEntrys->GetText( sContent, STRING_TYP_TEXT, sCur , sal_True ); if ( - ( !sCur.EqualsIgnoreCaseAscii("en-US") ) && + ( !sCur.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("en-US")) ) && - ( sContent != "-" ) && ( sContent.Len())) + ( sContent != "-" ) && !sContent.isEmpty()) { - ByteString sText = sContent; - Export::QuotHTML( sText ); + rtl::OString sText = Export::QuoteHTML( sContent); - ByteString sAdditionalLine( "\t" ); + rtl::OString sAdditionalLine( "\t" ); - ByteString sTextTag = pStackData->sTextTag; - ByteString sTemp = sTextTag.Copy( sTextTag.Search( "xml:lang=" )); + rtl::OString sTextTag = pStackData->sTextTag; + rtl::OString sTemp = sTextTag.copy( sTextTag.indexOf( "xml:lang=" )); - ByteString sSearch = getToken(sTemp, 0, '\"'); + rtl::OString sSearch = getToken(sTemp, 0, '\"'); sSearch += "\""; sSearch += getToken(sTemp, 1, '\"'); sSearch += "\""; - ByteString sReplace = getToken(sTemp, 0, '\"'); + rtl::OString sReplace = getToken(sTemp, 0, '\"'); sReplace += "\""; sReplace += sCur; sReplace += "\""; - sTextTag.SearchAndReplace( sSearch, sReplace ); + helper::searchAndReplace(&sTextTag, sSearch, sReplace); sAdditionalLine += sTextTag; sAdditionalLine += sText; diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx index 8909a1eed945..eacba7843adf 100644 --- a/l10ntools/source/export.cxx +++ b/l10ntools/source/export.cxx @@ -30,6 +30,7 @@ #include <stdlib.h> #include <tools/fsys.hxx> #include "export.hxx" +#include "helper.hxx" #include "tokens.h" #include <iostream> #include <vector> @@ -514,8 +515,8 @@ int Export::Execute( int nToken, const char * pToken ) /*****************************************************************************/ { - ByteString sToken( pToken ); - ByteString sOrig( sToken ); + rtl::OString sToken( pToken ); + rtl::OString sOrig( sToken ); sal_Bool bWriteToMerged = bMergeMode; if ( nToken == CONDITION ) @@ -594,18 +595,18 @@ int Export::Execute( int nToken, const char * pToken ) sal_uInt16 nClose = 0; sal_Bool bReadOver1 = sal_False; sal_uInt16 i = 0; - for ( i = 0; i < sToken.Len(); i++ ) { - if ( sToken.GetChar( i ) == '\"' ) + for ( i = 0; i < sToken.getLength(); i++ ) { + if ( sToken[i] == '"' ) bReadOver1 = !bReadOver1; - if ( !bReadOver1 && ( sToken.GetChar( i ) == '{' )) + if ( !bReadOver1 && ( sToken[i] == '{' )) nOpen++; } bReadOver1 = sal_False; - for ( i = 0; i < sToken.Len(); i++ ) { - if ( sToken.GetChar( i ) == '\"' ) + for ( i = 0; i < sToken.getLength(); i++ ) { + if ( sToken[i] == '"' ) bReadOver1 = !bReadOver1; - if ( !bReadOver1 && ( sToken.GetChar( i ) == '}' )) + if ( !bReadOver1 && ( sToken[i] == '}' )) nClose++; } @@ -615,10 +616,10 @@ int Export::Execute( int nToken, const char * pToken ) switch ( nToken ) { case NORMDEFINE: - while( sToken.SearchAndReplace( "\r", " " ) != STRING_NOTFOUND ) {}; - while( sToken.SearchAndReplace( "\t", " " ) != STRING_NOTFOUND ) {}; - while( sToken.SearchAndReplace( " ", " " ) != STRING_NOTFOUND ) {}; - if( sToken.EqualsIgnoreCaseAscii( "#define NO_LOCALIZE_EXPORT" ) ){ + while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {}; + while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; + while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {}; + if( sToken.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("#define NO_LOCALIZE_EXPORT")) ){ bSkipFile = true; return 0; } @@ -650,13 +651,13 @@ int Export::Execute( int nToken, const char * pToken ) sToken = comphelper::string::remove(sToken, '\n'); sToken = comphelper::string::remove(sToken, '\r'); sToken = comphelper::string::remove(sToken, '{'); - while( sToken.SearchAndReplace( "\t", " " ) != STRING_NOTFOUND ) {}; + while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; sToken = comphelper::string::stripEnd(sToken, ' '); rtl::OString sTLower = getToken(sToken, 0, ' ').toAsciiLowerCase(); pResData->sResTyp = sTLower; - ByteString sId( sToken.Copy( pResData->sResTyp.getLength() + 1 )); + rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 )); ByteString sCondition; - if ( sId.Search( "#" ) != STRING_NOTFOUND ) + if ( sId.indexOf( '#' ) != -1 ) { // between ResTyp, Id and paranthes is a precomp. condition sCondition = "#"; @@ -692,7 +693,8 @@ int Export::Execute( int nToken, const char * pToken ) sToken = comphelper::string::remove(sToken, '\t'); sToken = comphelper::string::remove(sToken, ' '); sToken = comphelper::string::remove(sToken, '\\'); - pResData->sResTyp = sToken.ToLowerAscii(); + sToken = sToken.toAsciiLowerCase(); + pResData->sResTyp = sToken; } break; case LEVELUP: { @@ -753,7 +755,7 @@ int Export::Execute( int nToken, const char * pToken ) rtl::OString sKey = getToken(sToken, 0, '='); sKey = comphelper::string::remove(sKey, ' '); sKey = comphelper::string::remove(sKey, '\t'); - ByteString sValue = getToken(sToken, 1, '='); + rtl::OString sValue = getToken(sToken, 1, '='); CleanValue( sValue ); sKey = sKey.toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("IDENTIFIER"))) @@ -790,7 +792,7 @@ int Export::Execute( int nToken, const char * pToken ) nListIndex = 0; nListLevel = 0; } - if ( (sToken.Search( "{" ) != STRING_NOTFOUND) && + if ( (sToken.indexOf( '{' ) != -1) && ( getTokenCount(sToken, '{') > getTokenCount(sToken, '}') )) { Parse( LEVELUP, "" ); @@ -808,7 +810,7 @@ int Export::Execute( int nToken, const char * pToken ) rtl::OString sKey = sTmpToken.Copy( 0 , nPos ); sKey = comphelper::string::remove(sKey, ' '); sKey = comphelper::string::remove(sKey, '\t'); - ByteString sValue = getToken(sToken, 1, '='); + rtl::OString sValue = getToken(sToken, 1, '='); CleanValue( sValue ); sKey = sKey.toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("STRINGLIST"))) @@ -871,7 +873,7 @@ int Export::Execute( int nToken, const char * pToken ) else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("UIENTRIES"))) nList = LIST_UIENTRIES; if ( nList ) { - ByteString sLang = getToken(getToken(sToken, 1, '['), 0, ']'); + rtl::OString sLang = getToken(getToken(sToken, 1, '['), 0, ']'); CleanValue( sLang ); m_sListLang = sLang; nListIndex = 0; @@ -911,7 +913,7 @@ int Export::Execute( int nToken, const char * pToken ) sKey = comphelper::string::remove(sKey, ' '); sKey = comphelper::string::remove(sKey, '\t'); ByteString sText( GetText( sToken, nToken )); - ByteString sLang; + rtl::OString sLang; if ( getToken(sToken, 0, '=').indexOf('[') != -1 ) { sLang = getToken(getToken(getToken(sToken, 0, '='), 1, '['), 0, ']'); @@ -919,7 +921,7 @@ int Export::Execute( int nToken, const char * pToken ) } rtl::OString sLangIndex = sLang; ByteString sOrigKey = sKey; - if ( sText.Len() && sLang.Len() ) + if ( sText.Len() && !sLang.isEmpty() ) { sKey = sKey.toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("TEXT")) || @@ -1045,9 +1047,9 @@ int Export::Execute( int nToken, const char * pToken ) break; case CONDITION: { bDontWriteOutput = sal_False; - while( sToken.SearchAndReplace( "\r", " " ) != STRING_NOTFOUND ) {}; - while( sToken.SearchAndReplace( "\t", " " ) != STRING_NOTFOUND ) {}; - while( sToken.SearchAndReplace( " ", " " ) != STRING_NOTFOUND ) {}; + while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {}; + while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; + while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {}; ByteString sCondition = getToken(sToken, 0, ' '); if ( sCondition == "#ifndef" ) { sActPForm = "!defined "; @@ -1058,12 +1060,12 @@ int Export::Execute( int nToken, const char * pToken ) sActPForm += ByteString(getToken(sToken, 1, ' ')); } else if ( sCondition == "#if" ) { - sActPForm = sToken.Copy( 4 ); - while ( sActPForm.SearchAndReplace( "||", "\\or" ) != STRING_NOTFOUND ) {}; + sActPForm = sToken.copy( 4 ); + while ( helper::searchAndReplace(&sActPForm, "||", "\\or" ) != -1 ) {}; } else if ( sCondition == "#elif" ) { - sActPForm = sToken.Copy( 6 ); - while ( sActPForm.SearchAndReplace( "||", "\\or" ) != STRING_NOTFOUND ) {}; + sActPForm = sToken.copy( 6 ); + while ( helper::searchAndReplace(&sActPForm, "||", "\\or" ) != -1 ) {}; } else if ( sCondition == "#else" ) { sActPForm = sCondition; @@ -1090,7 +1092,7 @@ int Export::Execute( int nToken, const char * pToken ) break; case PRAGMA : { bDontWriteOutput = sal_False; - fprintf(stderr, "ERROR: archaic PRAGMA %s\n", sToken.GetBuffer()); + fprintf(stderr, "ERROR: archaic PRAGMA %s\n", sToken.getStr()); exit(-1); } break; @@ -1101,10 +1103,10 @@ int Export::Execute( int nToken, const char * pToken ) if ( bWriteToMerged ) { // the current token must be written to dest. without merging - if( bDefine && sOrig.Len() > 2 ){ - for( sal_uInt16 n = 0 ; n < sOrig.Len() ; n++ ){ - if( sOrig.GetChar( n ) == '\n' && sOrig.GetChar( n-1 ) != '\\'){ - sOrig.Insert('\\' , n++ ); + if( bDefine && sOrig.getLength() > 2 ){ + for( sal_uInt16 n = 0 ; n < sOrig.getLength() ; n++ ){ + if( sOrig[n] == '\n' && sOrig[n-1] != '\\'){ + sOrig = sOrig.replaceAt(n++, 0, "\\"); } } } @@ -1119,10 +1121,10 @@ int Export::Execute( int nToken, const char * pToken ) } /*****************************************************************************/ -void Export::CutComment( ByteString &rText ) +void Export::CutComment( rtl::OString &rText ) /*****************************************************************************/ { - if ( rText.Search( "//" ) != STRING_NOTFOUND ) { + if ( rText.indexOf( "//" ) != -1 ) { ByteString sWork( rText ); sWork.SearchAndReplaceAll( "\\\"", "XX" ); sal_uInt16 i = 0; @@ -1136,7 +1138,7 @@ void Export::CutComment( ByteString &rText ) ( !bInner ) && ( sWork.GetChar( i + 1 ) == '/' )) { - rText.Erase( i ); + rText = rText.copy(0, i); return; } i++; @@ -1222,7 +1224,7 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew ) if ( bEnableExport ) { ByteString sOutput( sProject ); sOutput += "\t"; - if ( sRoot.Len()) + if ( !sRoot.isEmpty()) sOutput += sActFileName; sOutput += "\t0\t"; sOutput += pResData->sResTyp; sOutput += "\t"; @@ -1359,7 +1361,7 @@ sal_Bool Export::WriteExportList(ResData *pResData, ExportList *pExportList, rtl::OStringBuffer sOutput(sProject); sOutput.append('\t'); - if ( sRoot.Len()) + if ( !sRoot.isEmpty()) sOutput.append(sActFileName); sOutput.append("\t0\t"); sOutput.append(rTyp).append('\t'); @@ -1484,23 +1486,23 @@ void Export::InsertListEntry(const rtl::OString &rText, const rtl::OString &rLin } /*****************************************************************************/ -void Export::CleanValue( ByteString &rValue ) +void Export::CleanValue( rtl::OString &rValue ) /*****************************************************************************/ { - while ( rValue.Len()) { - if (( rValue.GetChar( 0 ) == ' ' ) || ( rValue.GetChar( 0 ) == '\t' )) - rValue = rValue.Copy( 1 ); + while ( !rValue.isEmpty()) { + if (( rValue[0] == ' ' ) || ( rValue[0] == '\t' )) + rValue = rValue.copy( 1 ); else break; } - if ( rValue.Len()) { - for ( sal_uInt16 i = rValue.Len() - 1; i > 0; i-- ) { - if (( rValue.GetChar( i ) == ' ' ) || ( rValue.GetChar( i ) == '\t' ) || - ( rValue.GetChar( i ) == '\n' ) || ( rValue.GetChar( i ) == ';' ) || - ( rValue.GetChar( i ) == '{' ) || ( rValue.GetChar( i ) == '\\' ) || - ( rValue.GetChar( i ) == '\r' )) - rValue.Erase( i ); + if ( !rValue.isEmpty()) { + for ( sal_Int32 i = rValue.getLength() - 1; i > 0; i-- ) { + if (( rValue[i] == ' ' ) || ( rValue[i] == '\t' ) || + ( rValue[i] == '\n' ) || ( rValue[i] == ';' ) || + ( rValue[i] == '{' ) || ( rValue[i] == '\\' ) || + ( rValue[i] == '\r' )) + rValue = rValue.copy(0, i); else break; } @@ -1519,19 +1521,19 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) case TEXTLINE: case LONGTEXTLINE: { - ByteString sTmp(rSource.copy(rSource.indexOf("="))); + rtl::OString sTmp(rSource.copy(rSource.indexOf("="))); CleanValue( sTmp ); sTmp = comphelper::string::remove(sTmp, '\n'); sTmp = comphelper::string::remove(sTmp, '\r'); - while ( sTmp.SearchAndReplace( "\\\\\"", "-=<[BSlashBSlashHKom]>=-\"" ) - != STRING_NOTFOUND ) {} - while ( sTmp.SearchAndReplace( "\\\"", "-=<[Hochkomma]>=-" ) - != STRING_NOTFOUND ) {} - while ( sTmp.SearchAndReplace( "\\", "-=<[0x7F]>=-" ) - != STRING_NOTFOUND ) {} - while ( sTmp.SearchAndReplace( "\\0x7F", "-=<[0x7F]>=-" ) - != STRING_NOTFOUND ) {} + while ( helper::searchAndReplace(&sTmp, "\\\\\"", "-=<[BSlashBSlashHKom]>=-\"" ) + != -1 ) {} + while ( helper::searchAndReplace(&sTmp, "\\\"", "-=<[Hochkomma]>=-" ) + != -1 ) {} + while ( helper::searchAndReplace(&sTmp, "\\", "-=<[0x7F]>=-" ) + != -1 ) {} + while ( helper::searchAndReplace(&sTmp, "\\0x7F", "-=<[0x7F]>=-" ) + != -1 ) {} sal_uInt16 nStart = 0; sal_uInt16 nState = TXT_STATE_MACRO; @@ -1638,21 +1640,20 @@ void Export::WriteToMerged(const rtl::OString &rText , bool bSDFContent) } /*****************************************************************************/ -void Export::ConvertMergeContent( ByteString &rText ) +void Export::ConvertMergeContent( rtl::OString &rText ) /*****************************************************************************/ { - sal_Bool bNoOpen = ( rText.Search( "\\\"" ) != 0 ); - ByteString sClose( rText.Copy( rText.Len() - 2 )); - sal_Bool bNoClose = ( sClose != "\\\"" ); + sal_Bool bNoOpen = ( rText.indexOf( "\\\"" ) != 0 ); + sal_Bool bNoClose = !helper::endsWith(rText, "\\\""); rtl::OStringBuffer sNew; - for ( sal_uInt16 i = 0; i < rText.Len(); i++ ) + for ( sal_Int32 i = 0; i < rText.getLength(); i++ ) { - rtl::OString sChar( rText.GetChar( i )); + rtl::OString sChar( rText[i]); if (sChar.equalsL(RTL_CONSTASCII_STRINGPARAM("\\"))) { - if (( i + 1 ) < rText.Len()) + if (( i + 1 ) < rText.getLength()) { - sal_Char cNext = rText.GetChar(i + 1); + sal_Char cNext = rText[i + 1]; if ( cNext == '\"' ) { sChar = rtl::OString('\"'); @@ -1705,12 +1706,12 @@ void Export::ConvertMergeContent( ByteString &rText ) rText += "\""; } -sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, +sal_Bool Export::PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp, rtl::OString &rLangIndex, ResData *pResData) { // position to merge in: - sal_uInt16 nStart = 0; - sal_uInt16 nEnd = 0; + sal_Int32 nStart = 0; + sal_Int32 nEnd = 0; ByteString sOldId = pResData->sId; ByteString sOldGId = pResData->sGId; ByteString sOldTyp = pResData->sResTyp; @@ -1763,15 +1764,15 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, rText = (*pCurEntry)[ SOURCE_LANGUAGE ]; } - nStart = rText.Search( "\"" ); - if ( nStart == STRING_NOTFOUND ) { + nStart = rText.indexOf( '"' ); + if ( nStart == -1 ) { rText = sOrigText; return sal_False; } sal_Bool bFound = sal_False; - for ( nEnd = nStart + 1; nEnd < rText.Len() && !bFound; nEnd++ ) { - if ( rText.GetChar( nEnd ) == '\"' ) + for ( nEnd = nStart + 1; nEnd < rText.getLength() && !bFound; nEnd++ ) { + if ( rText[nEnd] == '\"' ) bFound = sal_True; } if ( !bFound ) { @@ -1781,8 +1782,8 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, nEnd --; sLastListLine = rText; - if (( sLastListLine.Search( ">" ) != STRING_NOTFOUND ) && - ( sLastListLine.Search( "<" ) == STRING_NOTFOUND )) + if (( sLastListLine.indexOf( '>' ) != -1 ) && + ( sLastListLine.indexOf( '<' ) == -1 )) { ByteString sTmp = sLastListLine; sLastListLine = "<"; @@ -1805,16 +1806,16 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, case STRING_TYP_QUICKHELPTEXT : case STRING_TYP_TITLE : { - nStart = rText.Search( "=" ); - if ( nStart == STRING_NOTFOUND ) { + nStart = rText.indexOf( "=" ); + if ( nStart == -1 ) { rText = sOrigText; return sal_False; } nStart++; sal_Bool bFound = sal_False; - while(( nStart < rText.Len()) && !bFound ) { - if (( rText.GetChar( nStart ) != ' ' ) && ( rText.GetChar( nStart ) != '\t' )) + while(( nStart < rText.getLength()) && !bFound ) { + if (( rText[nStart] != ' ' ) && ( rText[nStart] != '\t' )) bFound = sal_True; else nStart ++; @@ -1827,13 +1828,13 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, } // position to end mergeing in - nEnd = rText.Len() - 1; + nEnd = rText.getLength() - 1; bFound = sal_False; while (( nEnd > nStart ) && !bFound ) { - if (( rText.GetChar( nEnd ) != ' ' ) && ( rText.GetChar( nEnd ) != '\t' ) && - ( rText.GetChar( nEnd ) != '\n' ) && ( rText.GetChar( nEnd ) != ';' ) && - ( rText.GetChar( nEnd ) != '{' ) && ( rText.GetChar( nEnd ) != '\\' )) + if (( rText[nEnd] != ' ' ) && ( rText[nEnd] != '\t' ) && + ( rText[nEnd] != '\n' ) && ( rText[nEnd] != ';' ) && + ( rText[nEnd] != '{' ) && ( rText[nEnd] != '\\' )) { bFound = sal_True; } @@ -1866,9 +1867,9 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, return sal_False; // no data found } - ByteString sContent; + rtl::OString sContent; pEntrys->GetTransex3Text(sContent, nTyp, rLangIndex); - if (!sContent.Len() && (!Export::isSourceLanguage(rLangIndex))) + if (sContent.isEmpty() && (!Export::isSourceLanguage(rLangIndex))) { rText = sOrigText; return sal_False; // no data found @@ -1877,8 +1878,8 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp, if (Export::isSourceLanguage(rLangIndex)) return sal_False; - ByteString sPostFix( rText.Copy( ++nEnd )); - rText.Erase( nStart ); + ByteString sPostFix( rText.copy( ++nEnd )); + rText = rText.copy(0, nStart); ConvertMergeContent( sContent ); @@ -1920,9 +1921,9 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sText; + rtl::OString sText; sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TEXT, sCur , sal_True ); - if ( bText && sText.Len() && sText != "-" ) { + if ( bText && !sText.isEmpty() && sText != "-" ) { ByteString sOutput; if ( bNextMustBeDefineEOL) { if ( bFirst ) @@ -1972,9 +1973,9 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sText; + rtl::OString sText; sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_QUICKHELPTEXT, sCur, sal_True ); - if ( bText && sText.Len() && sText != "-" ) { + if ( bText && !sText.isEmpty() && sText != "-" ) { ByteString sOutput; if ( bNextMustBeDefineEOL) { if ( bFirst ) @@ -2018,9 +2019,9 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sText; + rtl::OString sText; sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TITLE, sCur, sal_True ); - if ( bText && sText.Len() && sText != "-" ) { + if ( bText && !sText.isEmpty() && sText != "-" ) { ByteString sOutput; if ( bNextMustBeDefineEOL) { if ( bFirst ) @@ -2098,13 +2099,13 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) nMaxIndex = pList->GetSourceLanguageListEntryCount(); pEntrys = pMergeDataFile->GetPFormEntrys( pResData ); while( pEntrys && ( nLIndex < nMaxIndex )) { - ByteString sText; + rtl::OString sText; sal_Bool bText; bText = pEntrys->GetTransex3Text( sText, STRING_TYP_TEXT, sCur, sal_True ); if( !bText ) bText = pEntrys->GetTransex3Text( sText , STRING_TYP_TEXT, SOURCE_LANGUAGE , sal_False ); - if ( bText && sText.Len()) + if ( bText && !sText.isEmpty()) { if ( nIdx == 1 ) { @@ -2148,31 +2149,31 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) } WriteToMerged(sHead.makeStringAndClear() , true); } - ByteString sLine; + rtl::OString sLine; if ( pList && (*pList)[ nLIndex ] ) sLine = ( *(*pList)[ nLIndex ])[ SOURCE_LANGUAGE ]; - if ( !sLine.Len()) + if ( sLine.isEmpty()) sLine = sLastListLine; - if ( sLastListLine.Search( "<" ) != STRING_NOTFOUND ) { + if ( sLastListLine.indexOf( '<' ) != -1 ) { if (( nT != LIST_UIENTRIES ) && - (( sLine.Search( "{" ) == STRING_NOTFOUND ) || - ( sLine.Search( "{" ) >= sLine.Search( "\"" ))) && - (( sLine.Search( "<" ) == STRING_NOTFOUND ) || - ( sLine.Search( "<" ) >= sLine.Search( "\"" )))) + (( sLine.indexOf( '{' ) == -1 ) || + ( sLine.indexOf( '{' ) >= sLine.indexOf( '"' ))) && + (( sLine.indexOf( '<' ) == -1 ) || + ( sLine.indexOf( '<' ) >= sLine.indexOf( '"' )))) { - sLine.SearchAndReplace( "\"", "< \"" ); + helper::searchAndReplace(&sLine, "\"", "< \"" ); } } - sal_uInt16 nStart, nEnd; - nStart = sLine.Search( "\"" ); + sal_Int32 nStart, nEnd; + nStart = sLine.indexOf( '"' ); ByteString sPostFix; if( !bPairedList ){ - nEnd = sLine.SearchBackward( '\"' ); - sPostFix = ByteString( sLine.Copy( ++nEnd )); - sLine.Erase( nStart ); + nEnd = sLine.lastIndexOf( '"' ); + sPostFix = sLine.copy( ++nEnd ); + sLine = sLine.copy(0, nStart); } @@ -2251,20 +2252,20 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) sal_uLong nMaxIndex = 0; if ( pList ) nMaxIndex = pList->GetSourceLanguageListEntryCount(); - ByteString sLine; + rtl::OString sLine; if ( pList && (*pList)[ nListIndex ] ) sLine = ( *(*pList)[ nListIndex ])[ SOURCE_LANGUAGE ]; - if ( !sLine.Len()) + if ( sLine.isEmpty()) sLine = sLastListLine; - if ( sLastListLine.Search( "<" ) != STRING_NOTFOUND ) { + if ( sLastListLine.indexOf( '<' ) != -1 ) { if (( nList != LIST_UIENTRIES ) && - (( sLine.Search( "{" ) == STRING_NOTFOUND ) || - ( sLine.Search( "{" ) >= sLine.Search( "\"" ))) && - (( sLine.Search( "<" ) == STRING_NOTFOUND ) || - ( sLine.Search( "<" ) >= sLine.Search( "\"" )))) + (( sLine.indexOf( '{' ) == -1 ) || + ( sLine.indexOf( '{' ) >= sLine.indexOf( '"' ))) && + (( sLine.indexOf( '<' ) == -1 ) || + ( sLine.indexOf( '<' ) >= sLine.indexOf( '"' )))) { - sLine.SearchAndReplace( "\"", "< \"" ); + helper::searchAndReplace(&sLine, "\"", "< \"" ); } } @@ -2279,7 +2280,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) nListIndex++; if ( pList && (*pList)[ nListIndex ]) sLine = ( *(*pList)[ nListIndex ])[ SOURCE_LANGUAGE ]; - if ( !sLine.Len()) + if ( sLine.isEmpty()) sLine = sLastListLine; sLine += " ;"; } @@ -2289,12 +2290,12 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) pParseQueue->bMflag = false; } -ByteString Export::MergePairedList( ByteString& sLine , ByteString& sText ){ +rtl::OString Export::MergePairedList( rtl::OString const & sLine , rtl::OString const & sText ){ // < "xy" ; IDENTIFIER ; > - ByteString sPre = sLine.Copy( 0 , sLine.Search('\"') ); - ByteString sPost = sLine.Copy( sLine.SearchBackward('\"') + 1 , sLine.Len() ); - sPre.Append( sText ); - sPre.Append( sPost ); + rtl::OString sPre = sLine.copy( 0 , sLine.indexOf('"') ); + rtl::OString sPost = sLine.copy( sLine.lastIndexOf('"') + 1 ); + sPre += sText; + sPre += sPost; return sPre; } diff --git a/l10ntools/source/export2.cxx b/l10ntools/source/export2.cxx index 1c0af7d44506..ee4cb0954881 100644 --- a/l10ntools/source/export2.cxx +++ b/l10ntools/source/export2.cxx @@ -106,13 +106,13 @@ void Export::DumpExportList(const rtl::OString& rListName, ExportList& aList) } void Export::DumpMap(const rtl::OString& rMapName, - ByteStringHashMap& aMap) + OStringHashMap& aMap) { if( rMapName.getLength() ) printf("MapName %s\n", rMapName.getStr()); if( aMap.size() < 1 ) return; - for(ByteStringHashMap::const_iterator idbg = aMap.begin(); idbg != aMap.end(); ++idbg) + for(OStringHashMap::const_iterator idbg = aMap.begin(); idbg != aMap.end(); ++idbg) { ByteString a( idbg->first ); ByteString b( idbg->second ); @@ -143,24 +143,24 @@ std::vector<rtl::OString> Export::aLanguages = std::vector<rtl::OString>() std::vector<rtl::OString> Export::aForcedLanguages = std::vector<rtl::OString>(); /*****************************************************************************/ -void Export::QuotHTML( ByteString &rString ) +rtl::OString Export::QuoteHTML( rtl::OString const &rString ) /*****************************************************************************/ { rtl::OStringBuffer sReturn; - for ( sal_uInt16 i = 0; i < rString.Len(); i++ ) { - ByteString sTemp = rString.Copy( i ); - if ( sTemp.Search( "<Arg n=" ) == 0 ) { - while ( i < rString.Len() && rString.GetChar( i ) != '>' ) { - sReturn.append(rString.GetChar(i)); + for ( sal_Int32 i = 0; i < rString.getLength(); i++ ) { + rtl::OString sTemp = rString.copy( i ); + if ( sTemp.match( "<Arg n=" ) ) { + while ( i < rString.getLength() && rString[i] != '>' ) { + sReturn.append(rString[i]); i++; } - if ( rString.GetChar( i ) == '>' ) { + if ( rString[i] == '>' ) { sReturn.append('>'); i++; } } - if ( i < rString.Len()) { - switch ( rString.GetChar( i )) { + if ( i < rString.getLength()) { + switch ( rString[i]) { case '<': sReturn.append("<"); break; @@ -178,20 +178,20 @@ void Export::QuotHTML( ByteString &rString ) break; case '&': - if ((( i + 4 ) < rString.Len()) && - ( rString.Copy( i, 5 ) == "&" )) - sReturn.append(rString.GetChar(i)); + if ((( i + 4 ) < rString.getLength()) && + ( rString.copy( i, 5 ) == "&" )) + sReturn.append(rString[i]); else sReturn.append("&"); break; default: - sReturn.append(rString.GetChar(i)); + sReturn.append(rString[i]); break; } } } - rString = sReturn.makeStringAndClear(); + return sReturn.makeStringAndClear(); } void Export::RemoveUTF8ByteOrderMarker( rtl::OString &rString ) @@ -298,45 +298,32 @@ bool Export::CopyFile(const rtl::OString& rSource, const rtl::OString& rDest) } /*****************************************************************************/ -void Export::UnquotHTML( ByteString &rString ) +rtl::OString Export::UnquoteHTML( rtl::OString const &rString ) /*****************************************************************************/ { rtl::OStringBuffer sReturn; - - while ( rString.Len()) - { - if ( rString.Copy( 0, 5 ) == "&" ) - { + for (sal_Int32 i = 0; i != rString.getLength();) { + if (rString.match("&", i)) { sReturn.append('&'); - rString.Erase( 0, 5 ); - } - else if ( rString.Copy( 0, 4 ) == "<" ) - { + i += RTL_CONSTASCII_LENGTH("&"); + } else if (rString.match("<", i)) { sReturn.append('<'); - rString.Erase( 0, 4 ); - } - else if ( rString.Copy( 0, 4 ) == ">" ) - { + i += RTL_CONSTASCII_LENGTH("<"); + } else if (rString.match(">", i)) { sReturn.append('>'); - rString.Erase( 0, 4 ); - } - else if ( rString.Copy( 0, 6 ) == """ ) - { - sReturn.append('\"');; - rString.Erase( 0, 6 ); - } - else if ( rString.Copy( 0, 6 ) == "'" ) - { + i += RTL_CONSTASCII_LENGTH(">"); + } else if (rString.match(""", i)) { + sReturn.append('"'); + i += RTL_CONSTASCII_LENGTH("""); + } else if (rString.match("'", i)) { sReturn.append('\''); - rString.Erase( 0, 6 ); - } - else - { - sReturn.append(rString.GetChar(0)); - rString.Erase( 0, 1 ); + i += RTL_CONSTASCII_LENGTH("'"); + } else { + sReturn.append(rString[i]); + ++i; } } - rString = sReturn.makeStringAndClear(); + return sReturn.makeStringAndClear(); } bool Export::isSourceLanguage(const rtl::OString &rLanguage) @@ -357,7 +344,7 @@ void Export::InitLanguages( bool bMergeMode ){ if( !isInitialized ) { ByteString sTmp; - ByteStringBoolHashMap aEnvLangs; + OStringBoolHashMap aEnvLangs; sal_Int32 nIndex = 0; do @@ -380,7 +367,7 @@ void Export::InitLanguages( bool bMergeMode ){ void Export::InitForcedLanguages( bool bMergeMode ){ /*****************************************************************************/ ByteString sTmp; - ByteStringBoolHashMap aEnvLangs; + OStringBoolHashMap aEnvLangs; sal_Int32 nIndex = 0; do @@ -409,7 +396,7 @@ rtl::OString Export::GetTimeStamp() /*****************************************************************************/ sal_Bool Export::ConvertLineEnds( - ByteString sSource, ByteString sDestination ) + rtl::OString const & sSource, rtl::OString const & sDestination ) /*****************************************************************************/ { String sSourceFile( sSource, RTL_TEXTENCODING_ASCII_US ); @@ -445,7 +432,7 @@ sal_Bool Export::ConvertLineEnds( } /*****************************************************************************/ -ByteString Export::GetNativeFile( ByteString sSource ) +rtl::OString Export::GetNativeFile( rtl::OString const & sSource ) /*****************************************************************************/ { DirEntry aTemp( GetTempFile()); @@ -455,7 +442,7 @@ ByteString Export::GetNativeFile( ByteString sSource ) if ( ConvertLineEnds( sSource, sReturn )) return sReturn; - return ""; + return rtl::OString(); } const char* Export::GetEnv( const char *pVar ) diff --git a/l10ntools/source/gsicheck.cxx b/l10ntools/source/gsicheck.cxx index 8d5544f822e4..15ae5c557f23 100644 --- a/l10ntools/source/gsicheck.cxx +++ b/l10ntools/source/gsicheck.cxx @@ -32,6 +32,7 @@ #include <rtl/strbuf.hxx> #include <comphelper/string.hxx> +#include "helper.hxx" #include "tagtest.hxx" #include "gsicheck.hxx" @@ -41,23 +42,23 @@ using comphelper::string::getTokenCount; #define MAX_GID_LID_LEN 250 /*****************************************************************************/ -void PrintMessage( ByteString aType, ByteString aMsg, ByteString aPrefix, - ByteString aContext, sal_Bool bPrintContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ) +void PrintMessage( rtl::OString const & aType, rtl::OString const & aMsg, rtl::OString const & aPrefix, + rtl::OString const & aContext, sal_Bool bPrintContext, sal_uLong nLine, rtl::OString aUniqueId = rtl::OString() ) /*****************************************************************************/ { - fprintf( stdout, "%s %s, Line %lu", aType.GetBuffer(), aPrefix.GetBuffer(), nLine ); - if ( aUniqueId.Len() ) - fprintf( stdout, ", UniqueID %s", aUniqueId.GetBuffer() ); - fprintf( stdout, ": %s", aMsg.GetBuffer() ); + fprintf( stdout, "%s %s, Line %lu", aType.getStr(), aPrefix.getStr(), nLine ); + if ( !aUniqueId.isEmpty() ) + fprintf( stdout, ", UniqueID %s", aUniqueId.getStr() ); + fprintf( stdout, ": %s", aMsg.getStr() ); if ( bPrintContext ) - fprintf( stdout, " \"%s\"", aContext.GetBuffer() ); + fprintf( stdout, " \"%s\"", aContext.getStr() ); fprintf( stdout, "\n" ); } /*****************************************************************************/ -void PrintError( ByteString aMsg, ByteString aPrefix, - ByteString aContext, sal_Bool bPrintContext, sal_uLong nLine, ByteString aUniqueId = ByteString() ) +void PrintError( rtl::OString const & aMsg, rtl::OString const & aPrefix, + rtl::OString const & aContext, sal_Bool bPrintContext, sal_uLong nLine, rtl::OString const & aUniqueId = rtl::OString() ) /*****************************************************************************/ { PrintMessage( "Error:", aMsg, aPrefix, aContext, bPrintContext, nLine, aUniqueId ); @@ -139,18 +140,29 @@ void LazySvFileStream::LazyOpen() // /*****************************************************************************/ -GSILine::GSILine( const ByteString &rLine, sal_uLong nLine ) +GSILine::GSILine( const rtl::OString &rLine, sal_uLong nLine ) /*****************************************************************************/ - : ByteString( rLine ) - , nLineNumber( nLine ) + : nLineNumber( nLine ) , bOK( sal_True ) , bFixed ( sal_False ) + , data_( rLine ) { if ( getTokenCount(rLine, '\t') == 15 ) { aFormat = FORMAT_SDF; aUniqId = getToken(rLine, 0, '\t'); - aUniqId.Append("/").Append( getToken(rLine, 1, '\t') ).Append("/").Append( getToken(rLine, 3, '\t') ).Append("/").Append( getToken(rLine, 4, '\t') ).Append("/").Append( getToken(rLine, 5, '\t') ).Append("/").Append( getToken(rLine, 6, '\t') ).Append("/").Append( getToken(rLine, 7, '\t') ); + aUniqId += "/"; + aUniqId += getToken(rLine, 1, '\t'); + aUniqId += "/"; + aUniqId += getToken(rLine, 3, '\t'); + aUniqId += "/"; + aUniqId += getToken(rLine, 4, '\t'); + aUniqId += "/"; + aUniqId += getToken(rLine, 5, '\t'); + aUniqId += "/"; + aUniqId += getToken(rLine, 6, '\t'); + aUniqId += "/"; + aUniqId += getToken(rLine, 7, '\t'); aLineType = ""; aLangId = getToken(rLine, 9, '\t'); aText = getToken(rLine, 10, '\t'); @@ -201,12 +213,12 @@ void GSILine::ReassembleLine() sal_uInt16 i; for ( i = 0 ; i < 10 ; i++ ) { - aReassemble.Append( GetToken( i, '\t' ) ); + aReassemble.Append( helper::getToken( data_, i, '\t' ) ); aReassemble.Append( "\t" ); } aReassemble.Append( aText ); aReassemble.Append( "\t" ); - aReassemble.Append( GetToken( 11, '\t' ) ); // should be empty but there are some places in sc. Not reflected to sources!! + aReassemble.Append( helper::getToken( data_, 11, '\t' ) ); // should be empty but there are some places in sc. Not reflected to sources!! aReassemble.Append( "\t" ); aReassemble.Append( aQuickHelpText ); aReassemble.Append( "\t" ); @@ -214,7 +226,7 @@ void GSILine::ReassembleLine() for ( i = 14 ; i < 15 ; i++ ) { aReassemble.Append( "\t" ); - aReassemble.Append( GetToken( i, '\t' ) ); + aReassemble.Append( helper::getToken( data_, i, '\t' ) ); } *(ByteString*)this = aReassemble; } @@ -253,7 +265,7 @@ GSIBlock::~GSIBlock() void GSIBlock::InsertLine( GSILine* pLine, const rtl::OString &rSourceLang) { - if ( pLine->GetLanguageId().Equals( rSourceLang ) ) + if ( pLine->GetLanguageId() == rSourceLang ) { if ( pSourceLine ) { @@ -273,7 +285,7 @@ void GSIBlock::InsertLine( GSILine* pLine, const rtl::OString &rSourceLang) { for ( size_t nPos = 0, n = maList.size(); nPos < n; ++nPos ) { - if ( maList[ nPos ]->GetLanguageId().Equals( pLine->GetLanguageId() ) ) + if ( maList[ nPos ]->GetLanguageId() == pLine->GetLanguageId() ) { PrintError( "Translation Language entry double. Checking both.", "File format", "", pLine->GetLineNumber(), pLine->GetUniqId() ); bHasBlockError = sal_True; @@ -294,23 +306,23 @@ void GSIBlock::SetReferenceLine( GSILine* pLine ) } /*****************************************************************************/ -void GSIBlock::PrintMessage( ByteString aType, ByteString aMsg, ByteString aPrefix, - ByteString aContext, sal_uLong nLine, ByteString aUniqueId ) +void GSIBlock::PrintMessage( rtl::OString const & aType, rtl::OString const & aMsg, rtl::OString const & aPrefix, + rtl::OString const & aContext, sal_uLong nLine, rtl::OString const & aUniqueId ) /*****************************************************************************/ { ::PrintMessage( aType, aMsg, aPrefix, aContext, bPrintContext, nLine, aUniqueId ); } /*****************************************************************************/ -void GSIBlock::PrintError( ByteString aMsg, ByteString aPrefix, - ByteString aContext, sal_uLong nLine, ByteString aUniqueId ) +void GSIBlock::PrintError( rtl::OString const & aMsg, rtl::OString const & aPrefix, + rtl::OString const & aContext, sal_uLong nLine, rtl::OString const & aUniqueId ) /*****************************************************************************/ { PrintMessage( "Error:", aMsg, aPrefix, aContext, nLine, aUniqueId ); } /*****************************************************************************/ -void GSIBlock::PrintList( ParserMessageList *pList, ByteString aPrefix, +void GSIBlock::PrintList( ParserMessageList *pList, rtl::OString const & aPrefix, GSILine *pLine ) /*****************************************************************************/ { @@ -321,9 +333,9 @@ void GSIBlock::PrintList( ParserMessageList *pList, ByteString aPrefix, if ( bPrintContext ) { if ( pMsg->GetTagBegin() == STRING_NOTFOUND ) - aContext = pLine->GetText().Copy( 0, 300 ); + aContext = pLine->GetText().copy( 0, 300 ); else - aContext = pLine->Copy( pMsg->GetTagBegin()-150, 300 ); + aContext = pLine->data_.copy( pMsg->GetTagBegin()-150, 300 ); aContext = comphelper::string::stripEnd(aContext, ' '); aContext = comphelper::string::stripStart(aContext, ' '); } @@ -333,15 +345,15 @@ void GSIBlock::PrintList( ParserMessageList *pList, ByteString aPrefix, } /*****************************************************************************/ -sal_Bool GSIBlock::IsUTF8( const ByteString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, ByteString &aErrorMsg, sal_Bool &bHasBeenFixed, ByteString &aFixed ) const +sal_Bool GSIBlock::IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, rtl::OString &aErrorMsg, sal_Bool &bHasBeenFixed, rtl::OString &aFixed ) const /*****************************************************************************/ { String aUTF8Tester(rtl::OStringToOUString(aTestee, RTL_TEXTENCODING_UTF8)); if ( STRING_MATCH != (nErrorPos = ByteString(rtl::OUStringToOString(aUTF8Tester, RTL_TEXTENCODING_UTF8)).Match( aTestee )) ) { - aUTF8Tester = String( aTestee.GetBuffer(), nErrorPos, RTL_TEXTENCODING_UTF8 ); + aUTF8Tester = String( aTestee.getStr(), nErrorPos, RTL_TEXTENCODING_UTF8 ); nErrorPos = aUTF8Tester.Len(); - aErrorMsg = ByteString( "UTF8 Encoding seems to be broken" ); + aErrorMsg = "UTF8 Encoding seems to be broken"; return sal_False; } @@ -349,14 +361,14 @@ sal_Bool GSIBlock::IsUTF8( const ByteString &aTestee, sal_Bool bFixTags, sal_uIn "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f" ).GetBuffer() ); if ( nErrorPos != STRING_NOTFOUND ) { - aErrorMsg = ByteString( "String contains illegal character" ); + aErrorMsg = "String contains illegal character"; return sal_False; } if ( bFixTags ) { bHasBeenFixed = sal_False; - aFixed.Erase(); + aFixed = rtl::OString(); } return sal_True; @@ -367,13 +379,13 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags ) /*****************************************************************************/ { sal_uInt16 nErrorPos = 0; - ByteString aErrorMsg; + rtl::OString aErrorMsg; sal_Bool bError = sal_False; - ByteString aFixed; + rtl::OString aFixed; sal_Bool bHasBeenFixed = sal_False; if ( !IsUTF8( pTestee->GetText(), bFixTags, nErrorPos, aErrorMsg, bHasBeenFixed, aFixed ) ) { - ByteString aContext( pTestee->GetText().Copy( nErrorPos, 20 ) ); + ByteString aContext( pTestee->GetText().copy( nErrorPos, 20 ) ); PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in Text at Position ")) .append(static_cast<sal_Int32>(nErrorPos)).getStr(), "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); @@ -386,7 +398,7 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags ) } if ( !IsUTF8( pTestee->GetQuickHelpText(), bFixTags, nErrorPos, aErrorMsg, bHasBeenFixed, aFixed ) ) { - ByteString aContext( pTestee->GetQuickHelpText().Copy( nErrorPos, 20 ) ); + rtl::OString aContext( pTestee->GetQuickHelpText().copy( nErrorPos, 20 ) ); PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in QuickHelpText at Position ")) .append(static_cast<sal_Int32>(nErrorPos)).getStr(), "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); @@ -399,7 +411,7 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags ) } if ( !IsUTF8( pTestee->GetTitle(), bFixTags, nErrorPos, aErrorMsg, bHasBeenFixed, aFixed ) ) { - ByteString aContext( pTestee->GetTitle().Copy( nErrorPos, 20 ) ); + rtl::OString aContext( pTestee->GetTitle().copy( nErrorPos, 20 ) ); PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in Title at Position ")) .append(static_cast<sal_Int32>(nErrorPos)).getStr(), "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); @@ -420,13 +432,13 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags ) sal_Bool GSIBlock::HasSuspiciousChars( GSILine* pTestee, GSILine* pSource ) /*****************************************************************************/ { - sal_uInt16 nPos = 0; - if ( !bAllowSuspicious && ( nPos = pTestee->GetText().Search("??")) != STRING_NOTFOUND ) - if ( pSource->GetText().Search("??") == STRING_NOTFOUND ) + sal_Int32 nPos = 0; + if ( !bAllowSuspicious && ( nPos = pTestee->GetText().indexOf("??")) != -1 ) + if ( pSource->GetText().indexOf("??") == -1 ) { String aUTF8Tester = String( pTestee->GetText(), 0, nPos, RTL_TEXTENCODING_UTF8 ); sal_uInt16 nErrorPos = aUTF8Tester.Len(); - ByteString aContext( pTestee->GetText().Copy( nPos, 20 ) ); + rtl::OString aContext( pTestee->GetText().copy( nPos, 20 ) ); PrintError(rtl::OStringBuffer(RTL_CONSTASCII_STRINGPARAM("Found double questionmark in translation only. Looks like an encoding problem at Position ")) .append(static_cast<sal_Int32>(nErrorPos)).getStr(), "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); @@ -480,11 +492,11 @@ sal_Bool GSIBlock::CheckSyntax( sal_uLong nLine, sal_Bool bRequireSourceLine, sa } else { - if ( pSourceLine && !pSourceLine->Equals( *pReferenceLine ) ) + if ( pSourceLine && pSourceLine->data_ != pReferenceLine->data_ ) { - xub_StrLen nPos = pSourceLine->Match( *pReferenceLine ); - ByteString aContext( pReferenceLine->Copy( nPos - 5, 15) ); - aContext.Append( "\" --> \"" ).Append( pSourceLine->Copy( nPos - 5, 15) ); + xub_StrLen nPos = ByteString(pSourceLine->data_).Match( pReferenceLine->data_ ); + ByteString aContext( pReferenceLine->data_.copy( nPos - 5, 15) ); + aContext.Append( "\" --> \"" ).Append( pSourceLine->data_.copy( nPos - 5, 15) ); PrintError( "Source Language Entry has changed.", "File format", aContext, pSourceLine->GetLineNumber(), pSourceLine->GetUniqId() ); pSourceLine->NotOK(); bHasError = sal_True; @@ -529,14 +541,14 @@ void GSIBlock::WriteError( LazySvFileStream &aErrOut, sal_Bool bRequireSourceLin { bHasError = sal_True; aErrOut.LazyOpen(); - aErrOut.WriteLine( *pItem ); + aErrOut.WriteLine( pItem->data_ ); } } if ( pSourceLine && ( bHasError || !pSourceLine->IsOK() ) && !( !bHasError && bCheckTranslationLang ) ) { aErrOut.LazyOpen(); - aErrOut.WriteLine( *pSourceLine ); + aErrOut.WriteLine( pSourceLine->data_ ); } } @@ -553,14 +565,14 @@ void GSIBlock::WriteCorrect( LazySvFileStream &aOkOut, sal_Bool bRequireSourceLi { bHasOK = sal_True; aOkOut.LazyOpen(); - aOkOut.WriteLine( *pItem ); + aOkOut.WriteLine( pItem->data_ ); } } if ( ( pSourceLine && pSourceLine->IsOK() && ( !maList.empty() || !bCheckTranslationLang ) ) || ( bHasOK && bCheckTranslationLang ) ) { aOkOut.LazyOpen(); - aOkOut.WriteLine( *pSourceLine ); + aOkOut.WriteLine( pSourceLine->data_ ); } } @@ -577,14 +589,14 @@ void GSIBlock::WriteFixed( LazySvFileStream &aFixOut ) { bHasFixes = sal_True; aFixOut.LazyOpen(); - aFixOut.WriteLine( *pItem ); + aFixOut.WriteLine( pItem->data_ ); } } if ( pSourceLine && ( bHasFixes || pSourceLine->IsFixed() ) ) { aFixOut.LazyOpen(); - aFixOut.WriteLine( *pSourceLine ); + aFixOut.WriteLine( pSourceLine->data_ ); } } @@ -654,7 +666,7 @@ int _cdecl main( int argc, char *argv[] ) String aCorrectFilename; String aFixedFilename; sal_Bool bFileHasError = sal_False; - ByteString aSourceLang( "en-US" ); // English is default + rtl::OString aSourceLang( "en-US" ); // English is default ByteString aFilename; ByteString aReferenceFilename; sal_Bool bReferenceFile = sal_False; @@ -734,9 +746,9 @@ int _cdecl main( int argc, char *argv[] ) { if ( (i+1) < argc ) { - aSourceLang = ByteString( argv[ i+1 ] ); - if ( aSourceLang.EqualsIgnoreCaseAscii( "none" ) ) - aSourceLang.Erase(); + aSourceLang = argv[ i+1 ]; + if ( aSourceLang.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("none")) ) + aSourceLang = rtl::OString(); i++; } else @@ -795,9 +807,9 @@ int _cdecl main( int argc, char *argv[] ) exit ( 0 ); } - if ( aSourceLang.Len() && !LanguageOK( aSourceLang ) ) + if ( !aSourceLang.isEmpty() && !LanguageOK( aSourceLang ) ) { - fprintf( stderr, "\nERROR: The Language '%s' is invalid!\n\n", aSourceLang.GetBuffer() ); + fprintf( stderr, "\nERROR: The Language '%s' is invalid!\n\n", aSourceLang.getStr() ); Help(); exit ( 1 ); } @@ -887,7 +899,7 @@ int _cdecl main( int argc, char *argv[] ) rtl::OString sGSILine; GSILine* pGSILine = NULL; - ByteString aOldId("No Valid ID"); // just set to something which can never be an ID + rtl::OString aOldId("No Valid ID"); // just set to something which can never be an ID GSIBlock *pBlock = NULL; sal_uLong nLine = 0; @@ -899,40 +911,40 @@ int _cdecl main( int argc, char *argv[] ) sal_Bool bDelete = sal_True; - if ( pGSILine->Len() ) + if ( !pGSILine->data_.isEmpty() ) { if ( FORMAT_UNKNOWN == pGSILine->GetLineFormat() ) { - PrintError( "Format of line is unknown. Ignoring!", "Line format", pGSILine->Copy( 0,40 ), bPrintContext, pGSILine->GetLineNumber() ); + PrintError( "Format of line is unknown. Ignoring!", "Line format", pGSILine->data_.copy( 0,40 ), bPrintContext, pGSILine->GetLineNumber() ); pGSILine->NotOK(); if ( bWriteError ) { bFileHasError = sal_True; aErrOut.LazyOpen(); - aErrOut.WriteLine( *pGSILine ); + aErrOut.WriteLine( pGSILine->data_ ); } } - else if ( pGSILine->GetLineType().EqualsIgnoreCaseAscii("res-comment") ) + else if ( pGSILine->GetLineType().equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("res-comment")) ) { // ignore comment lines, but write them to Correct Items File if ( bWriteCorrect ) { aOkOut.LazyOpen(); - aOkOut.WriteLine( *pGSILine ); + aOkOut.WriteLine( pGSILine->data_ ); } } else { - ByteString aId = pGSILine->GetUniqId(); + rtl::OString aId = pGSILine->GetUniqId(); if ( aId != aOldId ) { if ( pBlock ) { - bFileHasError |= pBlock->CheckSyntax( nLine, aSourceLang.Len() != 0, bFixTags ); + bFileHasError |= pBlock->CheckSyntax( nLine, !aSourceLang.isEmpty(), bFixTags ); if ( bWriteError ) - pBlock->WriteError( aErrOut, aSourceLang.Len() != 0 ); + pBlock->WriteError( aErrOut, !aSourceLang.isEmpty() ); if ( bWriteCorrect ) - pBlock->WriteCorrect( aOkOut, aSourceLang.Len() != 0 ); + pBlock->WriteCorrect( aOkOut, !aSourceLang.isEmpty() ); if ( bWriteFixed ) pBlock->WriteFixed( aFixOut ); @@ -957,7 +969,7 @@ int _cdecl main( int argc, char *argv[] ) } if ( pReferenceLine->GetLineFormat() != FORMAT_UNKNOWN ) { - if ( pReferenceLine->GetUniqId() == aId && pReferenceLine->GetLanguageId().Equals( aSourceLang ) ) + if ( pReferenceLine->GetUniqId() == aId && pReferenceLine->GetLanguageId() == aSourceLang ) { pBlock->SetReferenceLine( pReferenceLine ); pReferenceLine = NULL; @@ -968,7 +980,7 @@ int _cdecl main( int argc, char *argv[] ) } else { - if ( pReferenceLine->GetUniqId() < aId && pReferenceLine->GetLanguageId().Equals( aSourceLang ) ) + if ( pReferenceLine->GetUniqId() < aId && pReferenceLine->GetLanguageId() == aSourceLang ) PrintError( "No Entry in source file found. Entry has been removed from source file", "File format", "", bPrintContext, pGSILine->GetLineNumber(), pReferenceLine->GetUniqId() ); delete pReferenceLine; pReferenceLine = NULL; @@ -995,12 +1007,12 @@ int _cdecl main( int argc, char *argv[] ) } if ( pBlock ) { - bFileHasError |= pBlock->CheckSyntax( nLine, aSourceLang.Len() != 0, bFixTags ); + bFileHasError |= pBlock->CheckSyntax( nLine, !aSourceLang.isEmpty(), bFixTags ); if ( bWriteError ) - pBlock->WriteError( aErrOut, aSourceLang.Len() != 0 ); + pBlock->WriteError( aErrOut, !aSourceLang.isEmpty() ); if ( bWriteCorrect ) - pBlock->WriteCorrect( aOkOut, aSourceLang.Len() != 0 ); + pBlock->WriteCorrect( aOkOut, !aSourceLang.isEmpty() ); if ( bWriteFixed ) pBlock->WriteFixed( aFixOut ); diff --git a/l10ntools/source/helper.hxx b/l10ntools/source/helper.hxx new file mode 100644 index 000000000000..5b20595f9490 --- /dev/null +++ b/l10ntools/source/helper.hxx @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * [ Copyright (C) 2012 Red Hat, Inc., Stephan Bergmann <sbergman@redhat.com> + * (initial developer) ] + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#ifndef INCLUDED_L10NTOOLS_SOURCE_HELPER_HXX +#define INCLUDED_L10NTOOLS_SOURCE_HELPER_HXX + +#include "sal/config.h" + +#include <cassert> + +#include "rtl/string.hxx" +#include "sal/types.h" + +namespace helper { + +inline bool endsWith(rtl::OString const & text, rtl::OString const & search) { + return text.getLength() >= search.getLength() + && text.match(search, text.getLength() - search.getLength()); +} + +inline sal_Int32 searchAndReplace( + rtl::OString * text, rtl::OString const & search, + rtl::OString const & replace) +{ + assert(text != 0); + sal_Int32 i = text->indexOf(search); + if (i != -1) { + *text = text->replaceAt(i, search.getLength(), replace); + } + return i; +} + +inline rtl::OString getToken( + rtl::OString const & text, sal_Int32 token, char separator) +{ + sal_Int32 i = 0; + return text.getToken(token, separator, i); +} + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/l10ntools/source/helpex.cxx b/l10ntools/source/helpex.cxx index a8965959a258..02f091603e3c 100644 --- a/l10ntools/source/helpex.cxx +++ b/l10ntools/source/helpex.cxx @@ -209,7 +209,7 @@ int _cdecl main( int argc, char *argv[] ) hasNoError = aParser.Merge( sSDFFile, sOutputFile , Export::sLanguages , aMergeDataFile ); } else - hasNoError = aParser.CreateSDF( sOutputFile, sPrj, sPrjRoot, sInputFile, new XMLFile( '0' ), "help" ); + hasNoError = aParser.CreateSDF( sOutputFile, sPrj, sPrjRoot, sInputFile, new XMLFile( rtl::OUString('0') ), "help" ); }else if ( sOutputFileX.getLength() && sOutputFileY.getLength() && hasInputList ) { // Merge multiple files ? if ( bMergeMode ){ diff --git a/l10ntools/source/helpmerge.cxx b/l10ntools/source/helpmerge.cxx index ffe31bb6d654..2c17fd7a76f2 100644 --- a/l10ntools/source/helpmerge.cxx +++ b/l10ntools/source/helpmerge.cxx @@ -55,11 +55,11 @@ void HelpParser::Dump(XMLHashMap* rElem_in) } } -void HelpParser::Dump(LangHashMap* rElem_in,const ByteString sKey_in) +void HelpParser::Dump(LangHashMap* rElem_in,const rtl::OString & sKey_in) { ByteString x; OString y; - fprintf(stdout,"+------------%s-----------+\n",sKey_in.GetBuffer() ); + fprintf(stdout,"+------------%s-----------+\n",sKey_in.getStr() ); for(LangHashMap::iterator posn=rElem_in->begin();posn!=rElem_in->end();++posn) { x=posn->first; @@ -70,7 +70,7 @@ void HelpParser::Dump(LangHashMap* rElem_in,const ByteString sKey_in) } #endif -HelpParser::HelpParser( const ByteString &rHelpFile, bool rUTF8 , bool rHasInputList ) +HelpParser::HelpParser( const rtl::OString &rHelpFile, bool rUTF8 , bool rHasInputList ) : sHelpFile( rHelpFile ), bUTF8 ( rUTF8 ), bHasInputList( rHasInputList ) @@ -79,8 +79,8 @@ HelpParser::HelpParser( const ByteString &rHelpFile, bool rUTF8 , bool rHasInput /*****************************************************************************/ bool HelpParser::CreateSDF( /*****************************************************************************/ - const ByteString &rSDFFile_in, const ByteString &rPrj_in,const ByteString &rRoot_in, - const ByteString &sHelpFile, XMLFile *pXmlFile, const ByteString &rGsi1){ + const rtl::OString &rSDFFile_in, const rtl::OString &rPrj_in,const rtl::OString &rRoot_in, + const rtl::OString &sHelpFile, XMLFile *pXmlFile, const rtl::OString &rGsi1){ // GSI File constants static const String GSI_SEQUENCE1( String::CreateFromAscii("\t0\t") ); static const String GSI_SEQUENCE2( String::CreateFromAscii("\t\t\t0\t") ); @@ -137,11 +137,11 @@ bool HelpParser::CreateSDF( STREAM_STD_WRITE | STREAM_TRUNC ); if ( !aSDFStream.IsOpen()) { - fprintf(stdout,"Can't open file %s\n",rSDFFile_in.GetBuffer()); + fprintf(stdout,"Can't open file %s\n",rSDFFile_in.getStr()); return false; } - ByteString sActFileName = makeAbsolutePath( sHelpFile , rRoot_in ); + rtl::OString sActFileName = makeAbsolutePath( sHelpFile , rRoot_in ); XMLHashMap* aXMLStrHM = file->GetStrings(); LangHashMap* pElem; @@ -151,9 +151,9 @@ bool HelpParser::CreateSDF( OUString sOUTimeStamp( sTimeStamp.GetBuffer() , sTimeStamp.Len() , RTL_TEXTENCODING_ASCII_US ); OUStringBuffer sBuffer; - const OUString sOUPrj( rPrj_in.GetBuffer() , rPrj_in.Len() , RTL_TEXTENCODING_ASCII_US ); - const OUString sOUActFileName(sActFileName.GetBuffer() , sActFileName.Len() , RTL_TEXTENCODING_ASCII_US ); - const OUString sOUGsi1( rGsi1.GetBuffer() , rGsi1.Len() , RTL_TEXTENCODING_ASCII_US ); + const OUString sOUPrj( rPrj_in.getStr() , rPrj_in.getLength() , RTL_TEXTENCODING_ASCII_US ); + const OUString sOUActFileName(sActFileName.getStr() , sActFileName.getLength() , RTL_TEXTENCODING_ASCII_US ); + const OUString sOUGsi1( rGsi1.getStr() , rGsi1.getLength() , RTL_TEXTENCODING_ASCII_US ); Export::InitLanguages( false ); std::vector<rtl::OString> aLanguages = Export::GetLanguages(); @@ -183,7 +183,7 @@ bool HelpParser::CreateSDF( data = OUString( sTmp ); sBuffer.append( sOUPrj ); sBuffer.append( GSI_TAB ); //"\t"; - if ( rRoot_in.Len()) + if ( !rRoot_in.isEmpty()) sBuffer.append( sOUActFileName ); sBuffer.append( GSI_SEQUENCE1 ); //"\t0\t"; sBuffer.append( sOUGsi1 ); //"help"; @@ -230,7 +230,7 @@ rtl::OString HelpParser::makeAbsolutePath(const rtl::OString& sHelpFile, const r return sActFileName.replace('/', '\\'); } -bool HelpParser::Merge( const ByteString &rSDFFile, const ByteString &rDestinationFile , +bool HelpParser::Merge( const rtl::OString &rSDFFile, const rtl::OString &rDestinationFile , const rtl::OString& rLanguage , MergeDataFile& aMergeDataFile ) { @@ -259,7 +259,7 @@ bool HelpParser::Merge( const ByteString &rSDFFile, const ByteString &rDestinati String fullFilePath; DirEntry aFile( sXmlFile ); - XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( '0' ) ) ); + XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( rtl::OUString('0') ) ) ); hasNoError = MergeSingleFile( xmlfile , aMergeDataFile , rLanguage , rDestinationFile ); delete xmlfile; if( !sUsedTempFile.EqualsIgnoreCaseAscii( "" ) ){ @@ -308,7 +308,7 @@ void HelpParser::parse_languages( std::vector<rtl::OString>& aLanguages , MergeD } bool HelpParser::Merge( - const ByteString &rSDFFile, const ByteString &rPathX , const ByteString &rPathY , bool bISO , + const rtl::OString &rSDFFile, const rtl::OString &rPathX , const rtl::OString &rPathY , bool bISO , const std::vector<rtl::OString>& aLanguages , MergeDataFile& aMergeDataFile , bool bCreateDir ) { @@ -340,7 +340,7 @@ bool HelpParser::Merge( String fullFilePath; DirEntry aFile( sXmlFile ); - XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( '0' ) ) ); + XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( rtl::OUString('0') ) ) ); xmlfile->Extract(); if( xmlfile == NULL) @@ -377,8 +377,8 @@ bool HelpParser::Merge( return hasNoError; } -bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const ByteString& sLanguage , - ByteString sPath ) +bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const rtl::OString& sLanguage , + rtl::OString const & sPath ) { file->Extract(); @@ -501,7 +501,7 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile return true; } -ByteString HelpParser::GetOutpath( const ByteString& rPathX , const ByteString& sCur , const ByteString& rPathY ) +rtl::OString HelpParser::GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY ) { ByteString testpath = rPathX; static const rtl::OString sDelimiter(rtl::OUStringToOString(DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US)); @@ -539,7 +539,7 @@ void HelpParser::MakeDir(const rtl::OString& rPath) /* ProcessHelp Methode: search for en-US entry and replace it with the current language*/ -void HelpParser::ProcessHelp( LangHashMap* aLangHM , const ByteString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){ +void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){ XMLElement* pXMLElement = NULL; PFormEntrys *pEntrys = NULL; @@ -551,7 +551,7 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const ByteString& sCur , Re pEntrys = NULL; - if( !sCur.EqualsIgnoreCaseAscii("en-US") ){ + if( !sCur.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("en-US")) ){ pXMLElement = (*aLangHM)[ "en-US" ]; if( pXMLElement == NULL ) { @@ -565,7 +565,7 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const ByteString& sCur , Re pEntrys = aMergeDataFile.GetPFormEntrys( pResData ); if( pEntrys != NULL) { - ByteString sNewText; + rtl::OString sNewText; pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true ); sNewdata = String( sNewText , RTL_TEXTENCODING_UTF8 ); if ( sNewdata.Len()) diff --git a/l10ntools/source/lngmerge.cxx b/l10ntools/source/lngmerge.cxx index d738a89a562c..47e3c6b152d1 100644 --- a/l10ntools/source/lngmerge.cxx +++ b/l10ntools/source/lngmerge.cxx @@ -112,7 +112,7 @@ sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile, size_t nPos = 0; sal_Bool bStart = true; rtl::OString sGroup, sLine; - ByteStringHashMap Text; + OStringHashMap Text; ByteString sID; while( nPos < pLines->size() ) { @@ -135,7 +135,7 @@ sal_Bool LngParser::CreateSDF(const rtl::OString &rSDFFile, } void LngParser::WriteSDF(SvFileStream &aSDFStream, - ByteStringHashMap &rText_inout, const rtl::OString &rPrj, + OStringHashMap &rText_inout, const rtl::OString &rPrj, const rtl::OString &rRoot, const rtl::OString &rActFileName, const rtl::OString &rID) { @@ -179,7 +179,7 @@ bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in) } void LngParser::ReadLine(const rtl::OString &rLine_in, - ByteStringHashMap &rText_inout) + OStringHashMap &rText_inout) { rtl::OString sLang = getToken(rLine_in, 0, '='); sLang = comphelper::string::stripStart(sLang, ' '); @@ -230,7 +230,7 @@ sal_Bool LngParser::Merge( } while ( nPos < pLines->size()) { - ByteStringHashMap Text; + OStringHashMap Text; ByteString sID( sGroup ); sal_uLong nLastLangPos = 0; @@ -276,10 +276,10 @@ sal_Bool LngParser::Merge( { if( sLang.Len() ) { - ByteString sNewText; + rtl::OString sNewText; pEntrys->GetText( sNewText, STRING_TYP_TEXT, sLang, sal_True ); - if ( sNewText.Len()) { + if ( !sNewText.isEmpty()) { rtl::OString *pLine = (*pLines)[ nPos ]; ByteString sText1( sLang ); @@ -312,9 +312,9 @@ sal_Bool LngParser::Merge( if( !sCur.EqualsIgnoreCaseAscii("en-US") && Text[sCur].isEmpty() && pEntrys ) { - ByteString sNewText; + rtl::OString sNewText; pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur, sal_True ); - if (( sNewText.Len()) && + if (( !sNewText.isEmpty()) && !(( sCur.Equals("x-comment") ) && ( sNewText == "-" ))) { ByteString sLine; diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx index cc4d97defa11..9f02125a3e85 100644 --- a/l10ntools/source/merge.cxx +++ b/l10ntools/source/merge.cxx @@ -63,22 +63,22 @@ rtl::OString PFormEntrys::Dump() return rtl::OString(RTL_CONSTASCII_STRINGPARAM("PFormEntrys\n")); } -sal_Bool PFormEntrys::GetTransex3Text( ByteString &rReturn, - sal_uInt16 nTyp, const ByteString &nLangIndex, sal_Bool bDel ) +sal_Bool PFormEntrys::GetTransex3Text( rtl::OString &rReturn, + sal_uInt16 nTyp, const rtl::OString &nLangIndex, sal_Bool bDel ) { sal_Bool rc = GetText( rReturn , nTyp , nLangIndex , bDel ); - for( sal_uInt16 idx = 0; idx < rReturn.Len(); idx++ ) + for( sal_Int32 idx = 0; idx < rReturn.getLength(); idx++ ) { - if( rReturn.GetChar( idx ) == '\"' && ( idx >= 1 ) && rReturn.GetChar( idx-1 ) == '\\' ) + if( rReturn[idx] == '\"' && ( idx >= 1 ) && rReturn[idx-1] == '\\' ) { - rReturn.Erase( idx-1 , 1 ); + rReturn = rReturn.replaceAt( idx-1, 1, rtl::OString() ); } } return rc; } /*****************************************************************************/ -sal_Bool PFormEntrys::GetText( ByteString &rReturn, - sal_uInt16 nTyp, const ByteString &nLangIndex, sal_Bool bDel ) +sal_Bool PFormEntrys::GetText( rtl::OString &rReturn, + sal_uInt16 nTyp, const rtl::OString &nLangIndex, sal_Bool bDel ) { sal_Bool bReturn=sal_True; diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx index 829bd76627a3..3a888b8fadd9 100644 --- a/l10ntools/source/xmlparse.cxx +++ b/l10ntools/source/xmlparse.cxx @@ -156,43 +156,6 @@ void XMLParentNode::AddChild( XMLChildNode *pChild , size_t pos ) } /*****************************************************************************/ -int XMLParentNode::GetPosition( ByteString id ){ -/*****************************************************************************/ - XMLElement* a; - - static const rtl::OString sEnusStr = rtl::OString(RTL_CONSTASCII_STRINGPARAM(ENGLISH_US_ISO)).toAsciiLowerCase(); - static const rtl::OString sDeStr = rtl::OString(RTL_CONSTASCII_STRINGPARAM(GERMAN_ISO2)).toAsciiLowerCase(); - - if ( pChildList ) - { - for (size_t i = 0; i < pChildList->size(); ++i) - { - XMLChildNode *pChild = (*pChildList)[ i ]; - if ( pChild->GetNodeType() == XML_NODE_TYPE_ELEMENT ) - { - a = static_cast<XMLElement* >(pChild); - ByteString elemid( a->GetId() ); - elemid.ToLowerAscii(); - if ( elemid.Equals( id.ToLowerAscii() ) ) - { - ByteString elemLID( a->GetLanguageId() ); - elemLID.ToLowerAscii(); - if( elemLID.Equals( sEnusStr) ) - { - return i; - } - else if( elemLID.Equals( sDeStr) ) - { - return i; - } - } - } - } - } - return -1; -} - -/*****************************************************************************/ int XMLParentNode::RemoveChild( XMLElement *pRefElement ) /*****************************************************************************/ { @@ -255,7 +218,7 @@ XMLElement *XMLParentNode::GetChildElement( XMLElement *pRefElement ) XMLAttribute *pAttribute = (*pList)[ j ]; XMLAttribute *pCandidate = (( XMLElement * ) pChild )->GetAttribute( - *pAttribute ); + pAttribute->GetName() ); if ( !pCandidate || !pAttribute->IsEqual( *pCandidate )) bMatch = sal_False; } @@ -278,14 +241,14 @@ sal_uInt16 XMLFile::GetNodeType() } /*****************************************************************************/ -sal_Bool XMLFile::Write( ByteString &aFilename ) +sal_Bool XMLFile::Write( rtl::OString const &aFilename ) /*****************************************************************************/ { - if ( aFilename.Len()) { + if ( !aFilename.isEmpty()) { // retry harder if there is a NFS problem, for( int x = 1 ; x < 3 ; x++ ){ // this looks strange...yes! - ofstream aFStream( aFilename.GetBuffer() , ios::out | ios::trunc ); + ofstream aFStream( aFilename.getStr() , ios::out | ios::trunc ); if( !aFStream ) // From time to time the stream can not be opened the first time on NFS volumes, { // I wasn't able to track this down. I think this is an NFS issue ..... @@ -317,7 +280,7 @@ sal_Bool XMLFile::Write( ByteString &aFilename ) } } } - cerr << "ERROR: - helpex - Can't create file " << aFilename.GetBuffer() << "\nPossible reason: Disk full ? Mounted NFS volume broken ? Wrong permissions ?\n"; + cerr << "ERROR: - helpex - Can't create file " << aFilename.getStr() << "\nPossible reason: Disk full ? Mounted NFS volume broken ? Wrong permissions ?\n"; exit( -1 ); } cerr << "ERROR: - helpex - Empty file name\n"; @@ -349,7 +312,7 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur ) if ( pElement->GetAttributeList()) for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ) { rStream << " "; - String sData(* (*pElement->GetAttributeList())[ j ] ); + String sData( (*pElement->GetAttributeList())[ j ]->GetName() ); XMLUtil::QuotHTML( sData ); WriteString( rStream , sData ); rStream << "=\""; @@ -416,7 +379,7 @@ void XMLFile::Print( XMLNode *pCur, sal_uInt16 nLevel ) { for (size_t j = 0; j < pElement->GetAttributeList()->size(); ++j) { - rtl::OString aAttrName(rtl::OUStringToOString(*(*pElement->GetAttributeList())[j], + rtl::OString aAttrName(rtl::OUStringToOString((*pElement->GetAttributeList())[j]->GetName(), RTL_TEXTENCODING_UTF8)); if (!aAttrName.equalsIgnoreAsciiCase(XML_LANG)) { @@ -468,7 +431,7 @@ XMLFile::~XMLFile() } } /*****************************************************************************/ -XMLFile::XMLFile( const String &rFileName ) // the file name, empty if created from memory stream +XMLFile::XMLFile( const rtl::OUString &rFileName ) // the file name, empty if created from memory stream /*****************************************************************************/ : XMLParentNode( NULL ), sFileName ( rFileName ), @@ -511,7 +474,7 @@ void XMLFile::InsertL10NElement( XMLElement* pElement ){ if( pElement->GetAttributeList() != NULL ){ for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ) { - tmpStr=rtl::OUStringToOString(*(*pElement->GetAttributeList())[ j ], RTL_TEXTENCODING_UTF8); + tmpStr=rtl::OUStringToOString((*pElement->GetAttributeList())[ j ]->GetName(), RTL_TEXTENCODING_UTF8); if( tmpStr.CompareTo(ID)==COMPARE_EQUAL ){ // Get the "id" Attribute id = rtl::OUStringToOString((*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8); } @@ -619,7 +582,7 @@ void XMLFile::SearchL10NElements( XMLParentNode *pCur , int pos) { for ( size_t j = 0 , cnt = pElement->GetAttributeList()->size(); j < cnt && bInsert; ++j ) { - const ByteString tmpStr = rtl::OUStringToOString(*(*pElement->GetAttributeList())[j], RTL_TEXTENCODING_UTF8); + const ByteString tmpStr = rtl::OUStringToOString((*pElement->GetAttributeList())[j]->GetName(), RTL_TEXTENCODING_UTF8); if( tmpStr.CompareTo(THEID)==COMPARE_EQUAL ){ // Get the "id" Attribute tmpStrVal=rtl::OUStringToOString( (*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8 ); } @@ -695,7 +658,7 @@ bool XMLFile::CheckExportStatus( XMLParentNode *pCur ) { for (size_t j = 0 , cnt = pElement->GetAttributeList()->size(); j < cnt && bInsert; ++j) { - const rtl::OString tmpStr(rtl::OUStringToOString(*(*pElement->GetAttributeList())[j], + const rtl::OString tmpStr(rtl::OUStringToOString((*pElement->GetAttributeList())[j]->GetName(), RTL_TEXTENCODING_UTF8)); if (tmpStr.equalsIgnoreAsciiCase(STATUS)) { @@ -749,7 +712,7 @@ XMLElement::XMLElement(const XMLElement& obj) if ( obj.pAttributes ){ pAttributes = new XMLAttributeList(); for ( size_t i = 0; i < obj.pAttributes->size(); i++ ) - AddAttribute( *(*obj.pAttributes)[ i ], (*obj.pAttributes)[ i ]->GetValue() ); + AddAttribute( (*obj.pAttributes)[ i ]->GetName(), (*obj.pAttributes)[ i ]->GetValue() ); } } @@ -775,7 +738,7 @@ XMLElement& XMLElement::operator=(const XMLElement& obj){ if ( obj.pAttributes ){ pAttributes =new XMLAttributeList(); for ( size_t i = 0; i < obj.pAttributes->size(); i++ ) - AddAttribute( *(*obj.pAttributes)[ i ], (*obj.pAttributes)[ i ]->GetValue() ); + AddAttribute( (*obj.pAttributes)[ i ]->GetName(), (*obj.pAttributes)[ i ]->GetValue() ); } } return *this; @@ -793,13 +756,12 @@ void XMLElement::AddAttribute( const String &rAttribute, const String &rValue ) /*****************************************************************************/ void XMLElement::ChangeLanguageTag( const String &rValue ) { - static const String rName = String::CreateFromAscii("xml-lang"); SetLanguageId(rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8)); if ( pAttributes ) { for (size_t i = 0; i < pAttributes->size(); ++i) { - if ( *(*pAttributes)[ i ] == rName ) + if ( (*pAttributes)[ i ]->GetName().equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("xml-lang")) ) (*pAttributes)[ i ]->setValue(rValue); } } @@ -825,12 +787,12 @@ void XMLElement::ChangeLanguageTag( const String &rValue ) } } /*****************************************************************************/ -XMLAttribute *XMLElement::GetAttribute( const String &rName ) +XMLAttribute *XMLElement::GetAttribute( const rtl::OUString &rName ) /*****************************************************************************/ { if ( pAttributes ) for ( size_t i = 0; i < pAttributes->size(); i++ ) - if ( *(*pAttributes)[ i ] == rName ) + if ( (*pAttributes)[ i ]->GetName() == rName ) return (*pAttributes)[ i ]; return NULL; @@ -909,7 +871,7 @@ void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement if ( pElement->GetAttributeList()){ for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ){ - OUString aAttrName( *(*pElement->GetAttributeList())[ j ] ); + OUString aAttrName( (*pElement->GetAttributeList())[ j ]->GetName() ); if( !aAttrName.equalsIgnoreAsciiCase( XML_LANG ) ) { buffer.append( OUString(RTL_CONSTASCII_USTRINGPARAM(" ")) ); buffer.append( aAttrName ); diff --git a/l10ntools/source/xrmmerge.cxx b/l10ntools/source/xrmmerge.cxx index 698027de7ed1..fba54e6d9473 100644 --- a/l10ntools/source/xrmmerge.cxx +++ b/l10ntools/source/xrmmerge.cxx @@ -670,11 +670,11 @@ void XRMResMerge::WorkOnDesc( ByteString sDescFilename = GetAttribute ( rOpenTag, "xlink:href" ); for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sContent; + rtl::OString sContent; if ( !sCur.EqualsIgnoreCaseAscii("en-US") && ( pEntrys->GetText( sContent, STRING_TYP_TEXT, sCur, sal_True )) && - ( sContent != "-" ) && ( sContent.Len())) + ( sContent != "-" ) && !sContent.isEmpty()) { ByteString sText( sContent ); ByteString sAdditionalLine( "\n " ); @@ -738,11 +738,11 @@ void XRMResMerge::WorkOnText( PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrys( pResData ); if ( pEntrys ) { - ByteString sContent; + rtl::OString sContent; if ( Export::isAllowed( sLang ) && ( pEntrys->GetText( sContent, STRING_TYP_TEXT, sLang )) && - ( sContent != "-" ) && ( sContent.Len())) + ( sContent != "-" ) && !sContent.isEmpty()) { rText = sContent; @@ -776,11 +776,11 @@ void XRMResMerge::EndOfText( ByteString sCur; for( unsigned int n = 0; n < aLanguages.size(); n++ ){ sCur = aLanguages[ n ]; - ByteString sContent; + rtl::OString sContent; if ( !sCur.EqualsIgnoreCaseAscii("en-US") && ( pEntrys->GetText( sContent, STRING_TYP_TEXT, sCur, sal_True )) && - ( sContent != "-" ) && ( sContent.Len())) + ( sContent != "-" ) && !sContent.isEmpty()) { ByteString sText( sContent ); ByteString sAdditionalLine( "\n " ); |