Reduced tools/string usage further

This commit is contained in:
Stephan Bergmann
2012-02-02 21:36:11 +01:00
parent 88b58e9613
commit a4cbcf2fc5
12 changed files with 583 additions and 599 deletions

View File

@@ -71,7 +71,7 @@ public:
rtl::OString const GetQuickHelpText() const { return aQuickHelpText; } rtl::OString const GetQuickHelpText() const { return aQuickHelpText; }
rtl::OString const GetTitle() const { return aTitle; } rtl::OString const GetTitle() const { return aTitle; }
void SetUText( String &aNew ) { aText = rtl::OUStringToOString(aNew, RTL_TEXTENCODING_UTF8); ReassembleLine(); } void SetUText( rtl::OUString const &aNew ) { aText = rtl::OUStringToOString(aNew, RTL_TEXTENCODING_UTF8); ReassembleLine(); }
void SetText( rtl::OString const &aNew ) { aText = aNew; ReassembleLine(); } void SetText( rtl::OString const &aNew ) { aText = aNew; ReassembleLine(); }
void SetQuickHelpText( rtl::OString const &aNew ) { aQuickHelpText = aNew; ReassembleLine(); } void SetQuickHelpText( rtl::OString const &aNew ) { aQuickHelpText = aNew; ReassembleLine(); }
void SetTitle( rtl::OString const &aNew ) { aTitle = aNew; ReassembleLine(); } void SetTitle( rtl::OString const &aNew ) { aTitle = aNew; ReassembleLine(); }
@@ -109,7 +109,7 @@ private:
sal_Bool bHasBlockError; sal_Bool bHasBlockError;
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 IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_Int32 &nErrorPos, rtl::OString &aErrorMsg, sal_Bool &bHasBeenFixed, rtl::OString &aFixed ) const;
sal_Bool TestUTF8( GSILine* pTestee, sal_Bool bFixTags ); sal_Bool TestUTF8( GSILine* pTestee, sal_Bool bFixTags );
sal_Bool HasSuspiciousChars( GSILine* pTestee, GSILine* pSource ); sal_Bool HasSuspiciousChars( GSILine* pTestee, GSILine* pSource );

View File

@@ -29,7 +29,6 @@
#ifndef _TAGTEST_HXX_ #ifndef _TAGTEST_HXX_
#define _TAGTEST_HXX_ #define _TAGTEST_HXX_
#include <tools/string.hxx>
#include <boost/unordered_map.hpp> #include <boost/unordered_map.hpp>
#include <vector> #include <vector>
@@ -44,14 +43,14 @@ typedef ::std::vector< ParserMessage* > Impl_ParserMessageList;
class ParserMessageList; class ParserMessageList;
typedef boost::unordered_map<rtl::OString, String, rtl::OStringHash> StringHashMap; typedef boost::unordered_map<rtl::OString, rtl::OUString, rtl::OStringHash> StringHashMap;
class TokenInfo class TokenInfo
{ {
private: private:
void SplitTag( ParserMessageList &rErrorList ); void SplitTag( ParserMessageList &rErrorList );
String aTagName; rtl::OUString aTagName;
StringHashMap aProperties; StringHashMap aProperties;
sal_Bool bClosed; // tag is closed <sdnf/> sal_Bool bClosed; // tag is closed <sdnf/>
sal_Bool bCloseTag; // tag is close Tag </sdnf> sal_Bool bCloseTag; // tag is close Tag </sdnf>
@@ -63,29 +62,29 @@ private:
public: public:
String aTokenString; rtl::OUString aTokenString;
TokenId nId; TokenId nId;
sal_uInt16 nPos; // Position in String sal_uInt16 nPos; // Position in String
TokenInfo():bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),nId( 0 ){;} TokenInfo():bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),nId( 0 ){;}
explicit TokenInfo( TokenId pnId, sal_uInt16 nP ):bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),nId( pnId ),nPos(nP){;} explicit TokenInfo( TokenId pnId, sal_uInt16 nP ):bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),nId( pnId ),nPos(nP){;}
explicit TokenInfo( TokenId pnId, sal_uInt16 nP, String paStr ):bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),aTokenString( paStr ),nId( pnId ),nPos(nP) {;} explicit TokenInfo( TokenId pnId, sal_uInt16 nP, rtl::OUString const & paStr ):bClosed(sal_False),bCloseTag(sal_False),bIsBroken(sal_False),bHasBeenFixed(sal_False),bDone(sal_False),aTokenString( paStr ),nId( pnId ),nPos(nP) {;}
explicit TokenInfo( TokenId pnId, sal_uInt16 nP, String paStr, ParserMessageList &rErrorList ); explicit TokenInfo( TokenId pnId, sal_uInt16 nP, rtl::OUString const & paStr, ParserMessageList &rErrorList );
String GetTagName() const; rtl::OUString GetTagName() const;
String MakeTag() const; rtl::OUString MakeTag() const;
/** /**
Is the property to be ignored or does it have the default value anyways Is the property to be ignored or does it have the default value anyways
**/ **/
sal_Bool IsPropertyRelevant( const rtl::OString &rName, const String &rValue ) const; sal_Bool IsPropertyRelevant( const rtl::OString &rName, const rtl::OUString &rValue ) const;
sal_Bool IsPropertyValueValid( const rtl::OString &rName, const String &rValue ) const; sal_Bool IsPropertyValueValid( const rtl::OString &rName, const rtl::OUString &rValue ) const;
/** /**
Does the property contain the same value for all languages Does the property contain the same value for all languages
e.g.: the href in a link tag e.g.: the href in a link tag
**/ **/
sal_Bool IsPropertyInvariant( const rtl::OString &rName, const String &rValue ) const; sal_Bool IsPropertyInvariant( const rtl::OString &rName, const rtl::OUString &rValue ) const;
/** /**
a subset of IsPropertyInvariant but containing only those that are fixable a subset of IsPropertyInvariant but containing only those that are fixable
we dont wat to fix e.g.: ahelp :: visibility we dont wat to fix e.g.: ahelp :: visibility
@@ -284,19 +283,19 @@ class SimpleParser
{ {
private: private:
sal_uInt16 nPos; sal_uInt16 nPos;
String aSource; rtl::OUString aSource;
String aLastToken; rtl::OUString aLastToken;
TokenList aTokenList; TokenList aTokenList;
TokenInfo aNextTag; // to store closetag in case of combined tags like <br/> TokenInfo aNextTag; // to store closetag in case of combined tags like <br/>
String GetNextTokenString( ParserMessageList &rErrorList, sal_uInt16 &rTokeStartPos ); rtl::OUString GetNextTokenString( ParserMessageList &rErrorList, sal_uInt16 &rTokeStartPos );
public: public:
SimpleParser(); SimpleParser();
void Parse( String PaSource ); void Parse( rtl::OUString const & PaSource );
TokenInfo GetNextToken( ParserMessageList &rErrorList ); TokenInfo GetNextToken( ParserMessageList &rErrorList );
static String GetLexem( TokenInfo const &aToken ); static rtl::OUString GetLexem( TokenInfo const &aToken );
TokenList& GetTokenList(){ return aTokenList; } TokenList& GetTokenList(){ return aTokenList; }
}; };
@@ -328,7 +327,7 @@ class TokenParser
public: public:
TokenParser(); TokenParser();
void Parse( const String &aCode, ParserMessageList* pList ); void Parse( const rtl::OUString &aCode, ParserMessageList* pList );
TokenList& GetTokenList(){ return aParser.GetTokenList(); } TokenList& GetTokenList(){ return aParser.GetTokenList(); }
}; };
@@ -340,7 +339,7 @@ private:
ParserMessageList aCompareWarningList; ParserMessageList aCompareWarningList;
void CheckTags( TokenList &aReference, TokenList &aTestee, sal_Bool bFixTags ); void CheckTags( TokenList &aReference, TokenList &aTestee, sal_Bool bFixTags );
sal_Bool IsTagMandatory( TokenInfo const &aToken, TokenId &aMetaTokens ); sal_Bool IsTagMandatory( TokenInfo const &aToken, TokenId &aMetaTokens );
String aFixedTestee; rtl::OUString aFixedTestee;
public: public:
void CheckReference( GSILine *aReference ); void CheckReference( GSILine *aReference );
void CheckTestee( GSILine *aTestee, sal_Bool bHasSourceLine, sal_Bool bFixTags ); void CheckTestee( GSILine *aTestee, sal_Bool bHasSourceLine, sal_Bool bFixTags );
@@ -348,7 +347,7 @@ public:
ParserMessageList& GetCompareWarnings(){ return aCompareWarningList; } ParserMessageList& GetCompareWarnings(){ return aCompareWarningList; }
sal_Bool HasCompareWarnings(){ return ( !aCompareWarningList.empty() ); } sal_Bool HasCompareWarnings(){ return ( !aCompareWarningList.empty() ); }
String GetFixedTestee(){ return aFixedTestee; } rtl::OUString GetFixedTestee(){ return aFixedTestee; }
}; };
#endif #endif

View File

@@ -33,7 +33,6 @@
#include <expat.h> #include <expat.h>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <rtl/ustrbuf.hxx> #include <rtl/ustrbuf.hxx>
#include <tools/string.hxx>
#include <tools/stream.hxx> #include <tools/stream.hxx>
#include "export.hxx" #include "export.hxx"
#include "xmlutil.hxx" #include "xmlutil.hxx"
@@ -224,23 +223,20 @@ public:
virtual sal_uInt16 GetNodeType(); virtual sal_uInt16 GetNodeType();
/// returns file name /// returns file name
const String &GetName() { return sFileName; } rtl::OUString GetName() { return sFileName; }
void SetName( const String &rFilename ) { sFileName = rFilename; } void SetName( const rtl::OUString &rFilename ) { sFileName = rFilename; }
void SetFullName( const String &rFullFilename ) { sFullName = rFullFilename; } void SetFullName( const rtl::OUString &rFullFilename ) { sFullName = rFullFilename; }
const std::vector<rtl::OString> getOrder(){ return order; } const std::vector<rtl::OString> getOrder(){ return order; }
protected: protected:
// writes a string as UTF8 with dos line ends to a given stream // writes a string as UTF8 with dos line ends to a given stream
void WriteString( ofstream &rStream, const String &sString ); void WriteString( ofstream &rStream, const rtl::OUString &sString );
// quotes the given text for writing to a file
void QuotHTML( String &rString );
void InsertL10NElement( XMLElement* pElement); void InsertL10NElement( XMLElement* pElement);
// DATA // DATA
String sFileName; rtl::OUString sFileName;
String sFullName; rtl::OUString sFullName;
const rtl::OString ID, OLDREF, XML_LANG; const rtl::OString ID, OLDREF, XML_LANG;
@@ -256,13 +252,10 @@ class XMLUtil{
public: public:
/// Quot the XML characters and replace \n \t /// Quot the XML characters and replace \n \t
static void QuotHTML( String &rString ); static void QuotHTML( rtl::OUString &rString );
/// UnQuot the XML characters and restore \n \t /// UnQuot the XML characters and restore \n \t
static void UnQuotHTML ( String &rString ); static void UnQuotHTML ( rtl::OUString &rString );
private:
static void UnQuotData( String &rString );
static void UnQuotTags( String &rString );
}; };
@@ -274,7 +267,7 @@ private:
class XMLElement : public XMLParentNode class XMLElement : public XMLParentNode
{ {
private: private:
String sElementName; rtl::OUString sElementName;
XMLAttributeList *pAttributes; XMLAttributeList *pAttributes;
rtl::OString project, rtl::OString project,
filename, filename,
@@ -290,7 +283,7 @@ public:
/// create a element node /// create a element node
XMLElement(){} XMLElement(){}
XMLElement( XMLElement(
const String &rName, // the element name const rtl::OUString &rName, // the element name
XMLParentNode *Parent // parent node of this element XMLParentNode *Parent // parent node of this element
): XMLParentNode( Parent ), ): XMLParentNode( Parent ),
sElementName( rName ), sElementName( rName ),
@@ -312,15 +305,15 @@ public:
virtual sal_uInt16 GetNodeType(); virtual sal_uInt16 GetNodeType();
/// returns element name /// returns element name
const String &GetName() { return sElementName; } rtl::OUString GetName() { return sElementName; }
/// returns list of attributes of this element /// returns list of attributes of this element
XMLAttributeList *GetAttributeList() { return pAttributes; } XMLAttributeList *GetAttributeList() { return pAttributes; }
/// adds a new attribute to this element, typically used by parser /// adds a new attribute to this element, typically used by parser
void AddAttribute( const String &rAttribute, const String &rValue ); void AddAttribute( const rtl::OUString &rAttribute, const rtl::OUString &rValue );
void ChangeLanguageTag( const String &rValue ); void ChangeLanguageTag( const rtl::OUString &rValue );
// Return a ASCII String representation of this object // Return a ASCII String representation of this object
OString ToOString(); OString ToOString();
@@ -359,18 +352,18 @@ public:
class XMLData : public XMLChildNode class XMLData : public XMLChildNode
{ {
private: private:
String sData; rtl::OUString sData;
bool isNewCreated; bool isNewCreated;
public: public:
/// create a data node /// create a data node
XMLData( XMLData(
const String &rData, // the initial data const rtl::OUString &rData, // the initial data
XMLParentNode *Parent // the parent node of this data, typically a element node XMLParentNode *Parent // the parent node of this data, typically a element node
) )
: XMLChildNode( Parent ), sData( rData ) , isNewCreated ( false ){} : XMLChildNode( Parent ), sData( rData ) , isNewCreated ( false ){}
XMLData( XMLData(
const String &rData, // the initial data const rtl::OUString &rData, // the initial data
XMLParentNode *Parent, // the parent node of this data, typically a element node XMLParentNode *Parent, // the parent node of this data, typically a element node
bool newCreated bool newCreated
) )
@@ -382,12 +375,12 @@ public:
virtual sal_uInt16 GetNodeType(); virtual sal_uInt16 GetNodeType();
/// returns the data /// returns the data
const String &GetData() { return sData; } rtl::OUString GetData() { return sData; }
bool isNew() { return isNewCreated; } bool isNew() { return isNewCreated; }
/// adds new character data to the existing one /// adds new character data to the existing one
void AddData( void AddData(
const String &rData // the new data const rtl::OUString &rData // the new data
); );
@@ -401,12 +394,12 @@ public:
class XMLComment : public XMLChildNode class XMLComment : public XMLChildNode
{ {
private: private:
String sComment; rtl::OUString sComment;
public: public:
/// create a comment node /// create a comment node
XMLComment( XMLComment(
const String &rComment, // the comment const rtl::OUString &rComment, // the comment
XMLParentNode *Parent // the parent node of this comemnt, typically a element node XMLParentNode *Parent // the parent node of this comemnt, typically a element node
) )
: XMLChildNode( Parent ), sComment( rComment ) {} : XMLChildNode( Parent ), sComment( rComment ) {}
@@ -418,7 +411,7 @@ public:
XMLComment& operator=(const XMLComment& obj); XMLComment& operator=(const XMLComment& obj);
/// returns the comment /// returns the comment
const String &GetComment() { return sComment; } rtl::OUString GetComment() { return sComment; }
}; };
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@@ -428,12 +421,12 @@ public:
class XMLDefault : public XMLChildNode class XMLDefault : public XMLChildNode
{ {
private: private:
String sDefault; rtl::OUString sDefault;
public: public:
/// create a comment node /// create a comment node
XMLDefault( XMLDefault(
const String &rDefault, // the comment const rtl::OUString &rDefault, // the comment
XMLParentNode *Parent // the parent node of this comemnt, typically a element node XMLParentNode *Parent // the parent node of this comemnt, typically a element node
) )
: XMLChildNode( Parent ), sDefault( rDefault ) {} : XMLChildNode( Parent ), sDefault( rDefault ) {}
@@ -446,7 +439,7 @@ public:
virtual sal_uInt16 GetNodeType(); virtual sal_uInt16 GetNodeType();
/// returns the comment /// returns the comment
const String &GetDefault() { return sDefault; } rtl::OUString GetDefault() { return sDefault; }
}; };
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@@ -457,7 +450,7 @@ struct XMLError {
XML_Error eCode; // the error code XML_Error eCode; // the error code
sal_uLong nLine; // error line number sal_uLong nLine; // error line number
sal_uLong nColumn; // error column number sal_uLong nColumn; // error column number
String sMessage; // readable error message rtl::OUString sMessage; // readable error message
}; };
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@@ -498,8 +491,8 @@ public:
/// parse a file, returns NULL on criticall errors /// parse a file, returns NULL on criticall errors
XMLFile *Execute( XMLFile *Execute(
const String &rFullFileName, const rtl::OUString &rFullFileName,
const String &rFileName, // the file name const rtl::OUString &rFileName, // the file name
XMLFile *pXMLFileIn // the XMLFile XMLFile *pXMLFileIn // the XMLFile
); );

View File

@@ -26,9 +26,6 @@
* *
************************************************************************/ ************************************************************************/
// global includes
#include <tools/string.hxx>
// //
// XRMResParser // XRMResParser
// //
@@ -36,42 +33,42 @@
class XRMResParser class XRMResParser
{ {
private: private:
ByteString sGID; rtl::OString sGID;
ByteString sLID; rtl::OString sLID;
sal_Bool bError; sal_Bool bError;
sal_Bool bText; sal_Bool bText;
bool sLocalized; bool sLocalized;
ByteString sCurrentOpenTag; rtl::OString sCurrentOpenTag;
ByteString sCurrentCloseTag; rtl::OString sCurrentCloseTag;
ByteString sCurrentText; rtl::OString sCurrentText;
std::vector<rtl::OString> aLanguages; std::vector<rtl::OString> aLanguages;
protected: protected:
ByteString GetAttribute( const ByteString &rToken, const ByteString &rAttribute ); rtl::OString GetAttribute( const rtl::OString &rToken, const rtl::OString &rAttribute );
void Error( const ByteString &rError ); void Error( const rtl::OString &rError );
virtual void Output( const ByteString& rOutput )=0; virtual void Output( const rtl::OString& rOutput )=0;
virtual void WorkOnDesc( virtual void WorkOnDesc(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
)=0; )=0;
virtual void WorkOnText( virtual void WorkOnText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
)=0; )=0;
virtual void EndOfText( virtual void EndOfText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
const ByteString &rCloseTag const rtl::OString &rCloseTag
)=0; )=0;
ByteString GetGID() { return sGID; } rtl::OString GetGID() { return sGID; }
ByteString GetLID() { return sLID; } rtl::OString GetLID() { return sLID; }
void ConvertStringToDBFormat( ByteString &rString ); void ConvertStringToDBFormat( rtl::OString &rString );
void ConvertStringToXMLFormat( ByteString &rString ); void ConvertStringToXMLFormat( rtl::OString &rString );
public: public:
XRMResParser(); XRMResParser();
@@ -94,7 +91,7 @@ private:
protected: protected:
SvFileStream *pOutputStream; SvFileStream *pOutputStream;
public: public:
XRMResOutputParser ( const ByteString &rOutputFile ); XRMResOutputParser ( const rtl::OString &rOutputFile );
virtual ~XRMResOutputParser(); virtual ~XRMResOutputParser();
}; };
@@ -106,30 +103,30 @@ class XRMResExport : public XRMResOutputParser
{ {
private: private:
ResData *pResData; ResData *pResData;
ByteString sPrj; rtl::OString sPrj;
ByteString sPath; rtl::OString sPath;
std::vector<rtl::OString> aLanguages; std::vector<rtl::OString> aLanguages;
protected: protected:
void WorkOnDesc( void WorkOnDesc(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
); );
void WorkOnText( void WorkOnText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
); );
void EndOfText( void EndOfText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
const ByteString &rCloseTag const rtl::OString &rCloseTag
); );
void Output( const ByteString& rOutput ); void Output( const rtl::OString& rOutput );
public: public:
XRMResExport( XRMResExport(
const ByteString &rOutputFile, const rtl::OString &rOutputFile,
const ByteString &rProject, const rtl::OString &rProject,
const ByteString &rFilePath const rtl::OString &rFilePath
); );
virtual ~XRMResExport(); virtual ~XRMResExport();
}; };
@@ -142,29 +139,29 @@ class XRMResMerge : public XRMResOutputParser
{ {
private: private:
MergeDataFile *pMergeDataFile; MergeDataFile *pMergeDataFile;
ByteString sFilename; rtl::OString sFilename;
ResData *pResData; ResData *pResData;
std::vector<rtl::OString> aLanguages; std::vector<rtl::OString> aLanguages;
protected: protected:
void WorkOnDesc( void WorkOnDesc(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
); );
void WorkOnText( void WorkOnText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
); );
void EndOfText( void EndOfText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
const ByteString &rCloseTag const rtl::OString &rCloseTag
); );
void Output( const ByteString& rOutput ); void Output( const rtl::OString& rOutput );
public: public:
XRMResMerge( XRMResMerge(
const ByteString &rMergeSource, const rtl::OString &rMergeSource,
const ByteString &rOutputFile, const rtl::OString &rOutputFile,
ByteString &rFilename const rtl::OString &rFilename
); );
virtual ~XRMResMerge(); virtual ~XRMResMerge();
}; };

View File

@@ -58,7 +58,7 @@ Export *pExport = 0L;
#define STATE_LANGUAGES 0X000A #define STATE_LANGUAGES 0X000A
// set of global variables // set of global variables
typedef ::std::vector< ByteString* > FileList; typedef ::std::vector< rtl::OString > FileList;
FileList aInputFileList; FileList aInputFileList;
sal_Bool bEnableExport; sal_Bool bEnableExport;
sal_Bool bMergeMode; sal_Bool bMergeMode;
@@ -102,7 +102,7 @@ extern char *GetOutputFile( int argc, char* argv[])
// parse command line // parse command line
for( int i = 1; i < argc; i++ ) { for( int i = 1; i < argc; i++ ) {
ByteString sSwitch( argv[ i ] ); rtl::OString sSwitch( argv[ i ] );
if (sSwitch == "-i" || sSwitch == "-I" ) { if (sSwitch == "-i" || sSwitch == "-I" ) {
nState = STATE_INPUT; // next tokens specifies source files nState = STATE_INPUT; // next tokens specifies source files
@@ -142,7 +142,7 @@ extern char *GetOutputFile( int argc, char* argv[])
return NULL; // no valid command line return NULL; // no valid command line
} }
case STATE_INPUT: { case STATE_INPUT: {
aInputFileList.push_back( new ByteString( argv[ i ] ) ); aInputFileList.push_back( argv[ i ] );
bInput = sal_True; // min. one source file found bInput = sal_True; // min. one source file found
} }
break; break;
@@ -216,7 +216,7 @@ int EndExport()
extern const char* getFilename() extern const char* getFilename()
{ {
return (*(aInputFileList[ 0 ])).GetBuffer(); return aInputFileList[0].getStr();
} }
/*****************************************************************************/ /*****************************************************************************/
extern FILE *GetNextFile() extern FILE *GetNextFile()
@@ -226,7 +226,7 @@ extern FILE *GetNextFile()
if ( !sTempFile.isEmpty()) if ( !sTempFile.isEmpty())
{ {
fclose( pTempFile ); fclose( pTempFile );
String sTemp(rtl::OStringToOUString(sTempFile, rtl::OUString sTemp(rtl::OStringToOUString(sTempFile,
RTL_TEXTENCODING_ASCII_US)); RTL_TEXTENCODING_ASCII_US));
DirEntry aTemp( sTemp ); DirEntry aTemp( sTemp );
aTemp.Kill(); aTemp.Kill();
@@ -234,15 +234,14 @@ extern FILE *GetNextFile()
while ( !aInputFileList.empty() ) while ( !aInputFileList.empty() )
{ {
ByteString sFileName( *(aInputFileList[ 0 ]) ); rtl::OString sFileName(aInputFileList[0]);
rtl::OString sOrigFile( sFileName ); rtl::OString sOrigFile( sFileName );
sFileName = Export::GetNativeFile( sFileName ); sFileName = Export::GetNativeFile( sFileName );
delete aInputFileList[ 0 ];
aInputFileList.erase( aInputFileList.begin() ); aInputFileList.erase( aInputFileList.begin() );
if ( sFileName == "" ) { if ( sFileName.isEmpty() ) {
fprintf( stderr, "ERROR: Could not precompile File %s\n", fprintf( stderr, "ERROR: Could not precompile File %s\n",
sOrigFile.getStr()); sOrigFile.getStr());
return GetNextFile(); return GetNextFile();
@@ -252,10 +251,10 @@ extern FILE *GetNextFile()
Export::RemoveUTF8ByteOrderMarkerFromFile( sFileName ); Export::RemoveUTF8ByteOrderMarkerFromFile( sFileName );
// able to open file? // able to open file?
FILE *pFile = fopen( sFileName.GetBuffer(), "r" ); FILE *pFile = fopen( sFileName.getStr(), "r" );
if ( !pFile ) if ( !pFile )
fprintf( stderr, "Error: Could not open File %s\n", fprintf( stderr, "Error: Could not open File %s\n",
sFileName.GetBuffer()); sFileName.getStr());
else { else {
pTempFile = pFile; pTempFile = pFile;
@@ -266,7 +265,7 @@ extern FILE *GetNextFile()
aEntry.ToAbs(); aEntry.ToAbs();
rtl::OString sFullEntry(rtl::OUStringToOString(aEntry.GetFull(), rtl::OString sFullEntry(rtl::OUStringToOString(aEntry.GetFull(),
RTL_TEXTENCODING_ASCII_US)); RTL_TEXTENCODING_ASCII_US));
aEntry += DirEntry( String( "..", RTL_TEXTENCODING_ASCII_US )); aEntry += DirEntry(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
aEntry += DirEntry( sPrjRoot ); aEntry += DirEntry( sPrjRoot );
rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(), rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(),
RTL_TEXTENCODING_ASCII_US)); RTL_TEXTENCODING_ASCII_US));
@@ -423,7 +422,7 @@ Export::Export(const rtl::OString &rOutput, sal_Bool bWrite,
// open output stream // open output stream
if ( bEnableExport ) { if ( bEnableExport ) {
aOutput.Open( String( rOutput, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_WRITE | STREAM_TRUNC ); aOutput.Open( rtl::OStringToOUString( rOutput, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_WRITE | STREAM_TRUNC );
if( !aOutput.IsOpen() ) { if( !aOutput.IsOpen() ) {
fprintf(stderr, "ERROR : Can't open file %s\n", rOutput.getStr()); fprintf(stderr, "ERROR : Can't open file %s\n", rOutput.getStr());
exit ( -1 ); exit ( -1 );
@@ -465,7 +464,7 @@ Export::Export(const rtl::OString &rOutput, sal_Bool bWrite,
// open output stream // open output stream
if ( bEnableExport ) { if ( bEnableExport ) {
aOutput.Open( String( rOutput, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_WRITE | STREAM_TRUNC ); aOutput.Open( rtl::OStringToOUString( rOutput, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_WRITE | STREAM_TRUNC );
aOutput.SetStreamCharSet( RTL_TEXTENCODING_UTF8 ); aOutput.SetStreamCharSet( RTL_TEXTENCODING_UTF8 );
aOutput.SetLineDelimiter( LINEEND_CRLF ); aOutput.SetLineDelimiter( LINEEND_CRLF );
} }
@@ -647,7 +646,6 @@ int Export::Execute( int nToken, const char * pToken )
pResData = new ResData( sActPForm, FullId() , sFilename ); pResData = new ResData( sActPForm, FullId() , sFilename );
aResStack.push_back( pResData ); aResStack.push_back( pResData );
ByteString sBackup( sToken );
sToken = comphelper::string::remove(sToken, '\n'); sToken = comphelper::string::remove(sToken, '\n');
sToken = comphelper::string::remove(sToken, '\r'); sToken = comphelper::string::remove(sToken, '\r');
sToken = comphelper::string::remove(sToken, '{'); sToken = comphelper::string::remove(sToken, '{');
@@ -656,19 +654,19 @@ int Export::Execute( int nToken, const char * pToken )
rtl::OString sTLower = getToken(sToken, 0, ' ').toAsciiLowerCase(); rtl::OString sTLower = getToken(sToken, 0, ' ').toAsciiLowerCase();
pResData->sResTyp = sTLower; pResData->sResTyp = sTLower;
rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 )); rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 ));
ByteString sCondition; rtl::OString sCondition;
if ( sId.indexOf( '#' ) != -1 ) if ( sId.indexOf( '#' ) != -1 )
{ {
// between ResTyp, Id and paranthes is a precomp. condition // between ResTyp, Id and paranthes is a precomp. condition
sCondition = "#"; sCondition = "#";
sCondition += ByteString(getToken(sId, 1, '#')); sCondition += getToken(sId, 1, '#');
sId = getToken(sId, 0, '#'); sId = getToken(sId, 0, '#');
} }
sId = getToken(sId, 0, '/'); sId = getToken(sId, 0, '/');
CleanValue( sId ); CleanValue( sId );
sId = comphelper::string::remove(sId, '\t'); sId = comphelper::string::remove(sId, '\t');
pResData->SetId( sId, ID_LEVEL_IDENTIFIER ); pResData->SetId( sId, ID_LEVEL_IDENTIFIER );
if ( sCondition.Len()) if (!sCondition.isEmpty())
{ {
Execute( CONDITION, ""); // execute the precomp. condition Execute( CONDITION, ""); // execute the precomp. condition
} }
@@ -705,7 +703,7 @@ int Export::Execute( int nToken, const char * pToken )
break; break;
bDontWriteOutput = sal_False; bDontWriteOutput = sal_False;
ByteString sLowerTyp; rtl::OString sLowerTyp;
if ( pResData ) if ( pResData )
sLowerTyp = "unknown"; sLowerTyp = "unknown";
nLevel++; nLevel++;
@@ -803,11 +801,11 @@ int Export::Execute( int nToken, const char * pToken )
case LISTASSIGNMENT: case LISTASSIGNMENT:
{ {
bDontWriteOutput = sal_False; bDontWriteOutput = sal_False;
ByteString sTmpToken(comphelper::string::remove(sToken, ' ')); rtl::OString sTmpToken(
sal_uInt16 nPos = 0; comphelper::string::remove(sToken, ' ').toAsciiLowerCase());
nPos = sTmpToken.ToLowerAscii().Search("[en-us]="); sal_Int32 nPos = sTmpToken.indexOf("[en-us]=");
if( nPos != STRING_NOTFOUND ) { if (nPos != -1) {
rtl::OString sKey = sTmpToken.Copy( 0 , nPos ); rtl::OString sKey(sTmpToken.copy(0 , nPos));
sKey = comphelper::string::remove(sKey, ' '); sKey = comphelper::string::remove(sKey, ' ');
sKey = comphelper::string::remove(sKey, '\t'); sKey = comphelper::string::remove(sKey, '\t');
rtl::OString sValue = getToken(sToken, 1, '='); rtl::OString sValue = getToken(sToken, 1, '=');
@@ -888,7 +886,7 @@ int Export::Execute( int nToken, const char * pToken )
// this is an entry for a String- or FilterList // this is an entry for a String- or FilterList
if ( nList ) { if ( nList ) {
SetChildWithText(); SetChildWithText();
ByteString sEntry(getToken(sToken, 1, '\"')); rtl::OString sEntry(getToken(sToken, 1, '\"'));
if ( getTokenCount(sToken, '\"') > 3 ) if ( getTokenCount(sToken, '\"') > 3 )
sEntry += "\""; sEntry += "\"";
if ( sEntry == "\\\"" ) if ( sEntry == "\\\"" )
@@ -912,7 +910,7 @@ int Export::Execute( int nToken, const char * pToken )
rtl::OString sKey = getToken(getToken(sToken, 0, '='), 0, '['); rtl::OString sKey = getToken(getToken(sToken, 0, '='), 0, '[');
sKey = comphelper::string::remove(sKey, ' '); sKey = comphelper::string::remove(sKey, ' ');
sKey = comphelper::string::remove(sKey, '\t'); sKey = comphelper::string::remove(sKey, '\t');
ByteString sText( GetText( sToken, nToken )); rtl::OString sText( GetText( sToken, nToken ));
rtl::OString sLang; rtl::OString sLang;
if ( getToken(sToken, 0, '=').indexOf('[') != -1 ) if ( getToken(sToken, 0, '=').indexOf('[') != -1 )
{ {
@@ -920,8 +918,8 @@ int Export::Execute( int nToken, const char * pToken )
CleanValue( sLang ); CleanValue( sLang );
} }
rtl::OString sLangIndex = sLang; rtl::OString sLangIndex = sLang;
ByteString sOrigKey = sKey; rtl::OString sOrigKey = sKey;
if ( sText.Len() && !sLang.isEmpty() ) if ( !sText.isEmpty() && !sLang.isEmpty() )
{ {
sKey = sKey.toAsciiUpperCase(); sKey = sKey.toAsciiUpperCase();
if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("TEXT")) || if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("TEXT")) ||
@@ -1050,14 +1048,14 @@ int Export::Execute( int nToken, const char * pToken )
while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {}; while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {};
while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {};
while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {}; while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {};
ByteString sCondition = getToken(sToken, 0, ' '); rtl::OString sCondition(getToken(sToken, 0, ' '));
if ( sCondition == "#ifndef" ) { if ( sCondition == "#ifndef" ) {
sActPForm = "!defined "; sActPForm = "!defined ";
sActPForm += ByteString(getToken(sToken, 1, ' ')); sActPForm += getToken(sToken, 1, ' ');
} }
else if ( sCondition == "#ifdef" ) { else if ( sCondition == "#ifdef" ) {
sActPForm = "defined "; sActPForm = "defined ";
sActPForm += ByteString(getToken(sToken, 1, ' ')); sActPForm += getToken(sToken, 1, ' ');
} }
else if ( sCondition == "#if" ) { else if ( sCondition == "#if" ) {
sActPForm = sToken.copy( 4 ); sActPForm = sToken.copy( 4 );
@@ -1124,24 +1122,17 @@ int Export::Execute( int nToken, const char * pToken )
void Export::CutComment( rtl::OString &rText ) void Export::CutComment( rtl::OString &rText )
/*****************************************************************************/ /*****************************************************************************/
{ {
if ( rText.indexOf( "//" ) != -1 ) { if (rText.indexOf("//") != -1) {
ByteString sWork( rText ); rtl::OString sWork(rText);
sWork.SearchAndReplaceAll( "\\\"", "XX" ); helper::searchAndReplaceAll(&sWork, "\\\"", "XX");
sal_uInt16 i = 0; bool bInner = false;
sal_Bool bInner = sal_False; for (sal_Int32 i = 0; i < sWork.getLength() - 1; ++i) {
if (sWork[i] == '"') {
while ( i < sWork.Len() - 1 ) {
if ( sWork.GetChar( i ) == '\"' )
bInner = !bInner; bInner = !bInner;
else if } else if (sWork[i] == '/' && !bInner && sWork[i + 1] == '/' ) {
(( sWork.GetChar( i ) == '/' ) &&
( !bInner ) &&
( sWork.GetChar( i + 1 ) == '/' ))
{
rText = rText.copy(0, i); rText = rText.copy(0, i);
return; break;
} }
i++;
} }
} }
} }
@@ -1169,24 +1160,24 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
( !pResData->sTitle[ SOURCE_LANGUAGE ].isEmpty())) ( !pResData->sTitle[ SOURCE_LANGUAGE ].isEmpty()))
{ {
ByteString sGID = pResData->sGId; rtl::OString sGID = pResData->sGId;
ByteString sLID; rtl::OString sLID;
if ( !sGID.Len()) if (sGID.isEmpty())
sGID = pResData->sId; sGID = pResData->sId;
else else
sLID = pResData->sId; sLID = pResData->sId;
ByteString sXText; rtl::OString sXText;
ByteString sXHText; rtl::OString sXHText;
ByteString sXQHText; rtl::OString sXQHText;
ByteString sXTitle; rtl::OString sXTitle;
ByteString sTimeStamp( Export::GetTimeStamp()); rtl::OString sTimeStamp(Export::GetTimeStamp());
ByteString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int n = 0; n < aLanguages.size(); n++ ){
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
if ( !sCur.EqualsIgnoreCaseAscii("x-comment") ){ if (!sCur.equalsIgnoreAsciiCase("x-comment") ){
if (!pResData->sText[ sCur ].isEmpty()) if (!pResData->sText[ sCur ].isEmpty())
sXText = pResData->sText[ sCur ]; sXText = pResData->sText[ sCur ];
else { else {
@@ -1210,10 +1201,10 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
else else
sXTitle = pResData->sTitle[ SOURCE_LANGUAGE ]; sXTitle = pResData->sTitle[ SOURCE_LANGUAGE ];
if ( !sXText.Len()) if (sXText.isEmpty())
sXText = "-"; sXText = "-";
if ( !sXHText.Len()) if (sXHText.isEmpty())
{ {
if (!pResData->sHelpText[ SOURCE_LANGUAGE ].isEmpty()) if (!pResData->sHelpText[ SOURCE_LANGUAGE ].isEmpty())
sXHText = pResData->sHelpText[ SOURCE_LANGUAGE ]; sXHText = pResData->sHelpText[ SOURCE_LANGUAGE ];
@@ -1223,7 +1214,7 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
sXText = pResData->sText[ sCur ]; sXText = pResData->sText[ sCur ];
if ( bEnableExport ) { if ( bEnableExport ) {
ByteString sOutput( sProject ); sOutput += "\t"; rtl::OString sOutput( sProject ); sOutput += "\t";
if ( !sRoot.isEmpty()) if ( !sRoot.isEmpty())
sOutput += sActFileName; sOutput += sActFileName;
sOutput += "\t0\t"; sOutput += "\t0\t";
@@ -1232,7 +1223,7 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
sOutput += sLID; sOutput += "\t"; sOutput += sLID; sOutput += "\t";
sOutput += pResData->sHelpId; sOutput += "\t"; sOutput += pResData->sHelpId; sOutput += "\t";
sOutput += pResData->sPForm; sOutput += "\t"; sOutput += pResData->sPForm; sOutput += "\t";
sOutput += ByteString(rtl::OString::valueOf(static_cast<sal_Int64>(pResData->nWidth))); sOutput += "\t"; sOutput += rtl::OString::valueOf(static_cast<sal_Int64>(pResData->nWidth)); sOutput += "\t";
sOutput += sCur; sOutput += "\t"; sOutput += sCur; sOutput += "\t";
@@ -1254,31 +1245,31 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
} }
} }
if ( pResData->pStringList ) { if ( pResData->pStringList ) {
ByteString sList( "stringlist" ); rtl::OString sList( "stringlist" );
WriteExportList( pResData, pResData->pStringList, sList, bCreateNew ); WriteExportList( pResData, pResData->pStringList, sList, bCreateNew );
if ( bCreateNew ) if ( bCreateNew )
pResData->pStringList = 0; pResData->pStringList = 0;
} }
if ( pResData->pFilterList ) { if ( pResData->pFilterList ) {
ByteString sList( "filterlist" ); rtl::OString sList( "filterlist" );
WriteExportList( pResData, pResData->pFilterList, sList, bCreateNew ); WriteExportList( pResData, pResData->pFilterList, sList, bCreateNew );
if ( bCreateNew ) if ( bCreateNew )
pResData->pFilterList = 0; pResData->pFilterList = 0;
} }
if ( pResData->pItemList ) { if ( pResData->pItemList ) {
ByteString sList( "itemlist" ); rtl::OString sList( "itemlist" );
WriteExportList( pResData, pResData->pItemList, sList, bCreateNew ); WriteExportList( pResData, pResData->pItemList, sList, bCreateNew );
if ( bCreateNew ) if ( bCreateNew )
pResData->pItemList = 0; pResData->pItemList = 0;
} }
if ( pResData->pPairedList ) { if ( pResData->pPairedList ) {
ByteString sList( "pairedlist" ); rtl::OString sList( "pairedlist" );
WriteExportList( pResData, pResData->pPairedList, sList, bCreateNew ); WriteExportList( pResData, pResData->pPairedList, sList, bCreateNew );
if ( bCreateNew ) if ( bCreateNew )
pResData->pItemList = 0; pResData->pItemList = 0;
} }
if ( pResData->pUIEntries ) { if ( pResData->pUIEntries ) {
ByteString sList( "uientries" ); rtl::OString sList( "uientries" );
WriteExportList( pResData, pResData->pUIEntries, sList, bCreateNew ); WriteExportList( pResData, pResData->pUIEntries, sList, bCreateNew );
if ( bCreateNew ) if ( bCreateNew )
pResData->pUIEntries = 0; pResData->pUIEntries = 0;
@@ -1289,9 +1280,8 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew )
rtl::OString Export::GetPairedListID(const rtl::OString& rText) rtl::OString Export::GetPairedListID(const rtl::OString& rText)
{ {
// < "STRING" ; IDENTIFIER ; > ; // < "STRING" ; IDENTIFIER ; > ;
ByteString sIdent = getToken(rText, 1, ';'); rtl::OString sIdent(
sIdent.ToUpperAscii(); getToken(rText, 1, ';').toAsciiUpperCase().replace('\t', ' '));
while( sIdent.SearchAndReplace( "\t", " " ) != STRING_NOTFOUND ) {};
sIdent = comphelper::string::stripEnd(sIdent, ' '); sIdent = comphelper::string::stripEnd(sIdent, ' ');
sIdent = comphelper::string::stripStart(sIdent, ' '); sIdent = comphelper::string::stripStart(sIdent, ' ');
return sIdent; return sIdent;
@@ -1300,11 +1290,10 @@ rtl::OString Export::GetPairedListID(const rtl::OString& rText)
rtl::OString Export::GetPairedListString(const rtl::OString& rText) rtl::OString Export::GetPairedListString(const rtl::OString& rText)
{ {
// < "STRING" ; IDENTIFIER ; > ; // < "STRING" ; IDENTIFIER ; > ;
ByteString sString = getToken(rText, 0, ';'); rtl::OString sString(getToken(rText, 0, ';').replace('\t', ' '));
while( sString.SearchAndReplace( "\t", " " ) != STRING_NOTFOUND ) {};
sString = comphelper::string::stripEnd(sString, ' '); sString = comphelper::string::stripEnd(sString, ' ');
ByteString s1 = sString.Copy( sString.Search( '\"' )+1 ); rtl::OString s1(sString.copy(sString.indexOf('"') + 1));
sString = s1.Copy( 0 , s1.SearchBackward( '\"' ) ); sString = s1.copy(0, s1.lastIndexOf('"'));
sString = comphelper::string::stripEnd(sString, ' '); sString = comphelper::string::stripEnd(sString, ' ');
sString = comphelper::string::stripStart(sString, ' '); sString = comphelper::string::stripStart(sString, ' ');
return sString; return sString;
@@ -1319,8 +1308,8 @@ rtl::OString Export::StripList(const rtl::OString & rText)
sal_Bool Export::WriteExportList(ResData *pResData, ExportList *pExportList, sal_Bool Export::WriteExportList(ResData *pResData, ExportList *pExportList,
const rtl::OString &rTyp, sal_Bool bCreateNew) const rtl::OString &rTyp, sal_Bool bCreateNew)
{ {
ByteString sGID = pResData->sGId; rtl::OString sGID(pResData->sGId);
if ( !sGID.Len()) if (sGID.isEmpty())
sGID = pResData->sId; sGID = pResData->sId;
else { else {
sGID += "."; sGID += ".";
@@ -1328,13 +1317,13 @@ sal_Bool Export::WriteExportList(ResData *pResData, ExportList *pExportList,
sGID = comphelper::string::stripEnd(sGID, '.'); sGID = comphelper::string::stripEnd(sGID, '.');
} }
ByteString sTimeStamp( Export::GetTimeStamp()); rtl::OString sTimeStamp(Export::GetTimeStamp());
ByteString sCur; rtl::OString sCur;
for ( size_t i = 0; pExportList != NULL && i < pExportList->size(); i++ ) for ( size_t i = 0; pExportList != NULL && i < pExportList->size(); i++ )
{ {
ExportListEntry *pEntry = (*pExportList)[ i ]; ExportListEntry *pEntry = (*pExportList)[ i ];
ByteString sLID(rtl::OString::valueOf(static_cast<sal_Int64>(i + 1))); rtl::OString sLID(rtl::OString::valueOf(static_cast<sal_Int64>(i + 1)));
for (unsigned int n = 0; n < aLanguages.size(); ++n) for (unsigned int n = 0; n < aLanguages.size(); ++n)
{ {
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
@@ -1342,7 +1331,7 @@ sal_Bool Export::WriteExportList(ResData *pResData, ExportList *pExportList,
{ {
if ( bEnableExport ) if ( bEnableExport )
{ {
ByteString sText((*pEntry)[ SOURCE_LANGUAGE ] ); rtl::OString sText((*pEntry)[ SOURCE_LANGUAGE ] );
// Strip PairList Line String // Strip PairList Line String
if (rTyp.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("pairedlist"))) if (rTyp.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("pairedlist")))
@@ -1515,7 +1504,7 @@ void Export::CleanValue( rtl::OString &rValue )
rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) rtl::OString Export::GetText(const rtl::OString &rSource, int nToken)
{ {
ByteString sReturn; rtl::OString sReturn;
switch ( nToken ) switch ( nToken )
{ {
case TEXTLINE: case TEXTLINE:
@@ -1526,38 +1515,29 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken)
sTmp = comphelper::string::remove(sTmp, '\n'); sTmp = comphelper::string::remove(sTmp, '\n');
sTmp = comphelper::string::remove(sTmp, '\r'); sTmp = comphelper::string::remove(sTmp, '\r');
while ( helper::searchAndReplace(&sTmp, "\\\\\"", "-=<[BSlashBSlashHKom]>=-\"" ) helper::searchAndReplaceAll(
!= -1 ) {} &sTmp, "\\\\\"", "-=<[BSlashBSlashHKom]>=-\"");
while ( helper::searchAndReplace(&sTmp, "\\\"", "-=<[Hochkomma]>=-" ) helper::searchAndReplaceAll(&sTmp, "\\\"", "-=<[Hochkomma]>=-");
!= -1 ) {} helper::searchAndReplaceAll(&sTmp, "\\", "-=<[0x7F]>=-");
while ( helper::searchAndReplace(&sTmp, "\\", "-=<[0x7F]>=-" ) helper::searchAndReplaceAll(&sTmp, "\\0x7F", "-=<[0x7F]>=-");
!= -1 ) {}
while ( helper::searchAndReplace(&sTmp, "\\0x7F", "-=<[0x7F]>=-" )
!= -1 ) {}
sal_uInt16 nStart = 0; sal_uInt16 nState = TXT_STATE_TEXT;
sal_uInt16 nState = TXT_STATE_MACRO; for (sal_Int32 i = 0; i < getTokenCount(sTmp, '\"'); ++i)
nState = TXT_STATE_TEXT;
nStart = 1;
for ( sal_uInt16 i = nStart; i < getTokenCount(sTmp, '\"'); ++i )
{ {
ByteString sToken = getToken(sTmp, i, '\"'); rtl::OString sToken(getToken(sTmp, i, '"'));
if ( sToken.Len()) { if (!sToken.isEmpty()) {
if ( nState == TXT_STATE_TEXT ) { if ( nState == TXT_STATE_TEXT ) {
sReturn += sToken; sReturn += sToken;
nState = TXT_STATE_MACRO; nState = TXT_STATE_MACRO;
} }
else { else {
while( sToken.SearchAndReplace( "\t", " " ) != sToken = sToken.replace('\t', ' ');
STRING_NOTFOUND ) {}; while (helper::searchAndReplace(&sToken, " ", " ")
while( sToken.SearchAndReplace( " ", " " ) != != -1)
STRING_NOTFOUND ) {}; {}
sToken = comphelper::string::stripStart(sToken, ' '); sToken = comphelper::string::stripStart(sToken, ' ');
sToken = comphelper::string::stripEnd(sToken, ' '); sToken = comphelper::string::stripEnd(sToken, ' ');
if ( sToken.Len()) { if (!sToken.isEmpty()) {
sReturn += "\\\" "; sReturn += "\\\" ";
sReturn += sToken; sReturn += sToken;
sReturn += " \\\""; sReturn += " \\\"";
@@ -1567,19 +1547,13 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken)
} }
} }
while ( sReturn.SearchAndReplace( "-=<[0x7F]>=-", "" ) helper::searchAndReplaceAll(&sReturn, "-=<[0x7F]>=-", "");
!= STRING_NOTFOUND ) {}; helper::searchAndReplaceAll(&sReturn, "-=<[Hochkomma]>=-", "\"");
while ( sReturn.SearchAndReplace( "-=<[Hochkomma]>=-", "\"" ) helper::searchAndReplaceAll(
!= STRING_NOTFOUND ) {}; &sReturn, "-=<[BSlashBSlashHKom]>=-", "\\\\");
while ( sReturn.SearchAndReplace( "-=<[BSlashBSlashHKom]>=-", "\\\\" ) helper::searchAndReplaceAll(
!= STRING_NOTFOUND ) {}; &sReturn, "\\\\", "-=<[BSlashBSlash]>=-");
helper::searchAndReplaceAll(&sReturn, "-=<[BSlashBSlash]>=-", "\\");
while ( sReturn.SearchAndReplace( "\\\\", "-=<[BSlashBSlash]>=-" )
!= STRING_NOTFOUND ) {};
while ( sReturn.SearchAndReplace( "-=<[BSlashBSlash]>=-", "\\" )
!= STRING_NOTFOUND ) {};
} }
break; break;
} }
@@ -1590,50 +1564,44 @@ void Export::WriteToMerged(const rtl::OString &rText , bool bSDFContent)
{ {
if ( !bDontWriteOutput || !bUnmerge ) if ( !bDontWriteOutput || !bUnmerge )
{ {
ByteString sText( rText ); rtl::OString sText(rText);
while ( sText.SearchAndReplace( " \n", "\n" ) != STRING_NOTFOUND ) {}; while (helper::searchAndReplace(&sText, " \n", "\n") != -1) {}
if( pParseQueue->bNextIsM && bSDFContent && sText.Len() > 2 ){ if (pParseQueue->bNextIsM && bSDFContent && sText.getLength() > 2) {
for( sal_uInt16 n = 0 ; n < sText.Len() ; n++ ){ for (sal_Int32 n = 0; n < sText.getLength(); ++n) {
if( sText.GetChar( n ) == '\n' && sText.GetChar( n-1 ) != '\\'){ if (sText[n] == '\n' && sText[n - 1] != '\\') {
sText.Insert('\\' , n++ ); sText = sText.replaceAt(n++, 0, "\\");
} }
} }
} } else if (pParseQueue->bLastWasM && sText.getLength() > 2) {
else if( pParseQueue->bLastWasM && sText.Len() > 2 ){ for (sal_Int32 n = 0; n < sText.getLength(); ++n) {
for( sal_uInt16 n = 0 ; n < sText.Len() ; n++ ){ if (sText[n] == '\n' && sText[n - 1] != '\\') {
if( sText.GetChar( n ) == '\n' && sText.GetChar( n-1 ) != '\\'){ sText = sText.replaceAt(n++, 0, "\\");
sText.Insert('\\' , n++ );
} }
if( sText.GetChar( n ) == '\n' )pParseQueue->bMflag=true; if (sText[n] == '\n') {
} pParseQueue->bMflag = true;
}
else if( pParseQueue->bCurrentIsM && bSDFContent && sText.Len() > 2 ){
for( sal_uInt16 n = 0 ; n < sText.Len() ; n++ ){
if( sText.GetChar( n ) == '\n' && sText.GetChar( n-1 ) != '\\'){
sText.Insert('\\' , n++ );
pParseQueue->bMflag=true;
} }
} }
} } else if (pParseQueue->bCurrentIsM && bSDFContent
else if( pParseQueue->bMflag ){ && sText.getLength() > 2)
for( sal_uInt16 n = 1 ; n < sText.Len() ; n++ ){
if( sText.GetChar( n ) == '\n' && sText.GetChar( n-1 ) != '\\'){
sText.Insert('\\' , n++ );
}
}
}
for (sal_uInt16 i = 0; i < sText.Len(); ++i)
{ {
if ( sText.GetChar( i ) != '\n' ) for (sal_Int32 n = 0; n < sText.getLength(); ++n) {
{ if (sText[n] == '\n' && sText[n - 1] != '\\') {
sal_Char cChar = sText.GetChar(i); sText = sText.replaceAt(n++, 0, "\\");
aOutput.Write(&cChar, 1); pParseQueue->bMflag = true;
}
} }
else } else if (pParseQueue->bMflag) {
{ for (sal_Int32 n = 1; n < sText.getLength(); ++n) {
aOutput.WriteLine( ByteString()); if (sText[n] == '\n' && sText[n - 1] != '\\') {
sText = sText.replaceAt(n++, 0, "\\");
}
}
} for (sal_Int32 i = 0; i < sText.getLength(); ++i) {
if (sText[i] == '\n') {
aOutput.WriteLine(rtl::OString());
} else {
char cChar = sText[i];
aOutput.Write(&cChar, 1);
} }
} }
} }
@@ -1698,7 +1666,7 @@ void Export::ConvertMergeContent( rtl::OString &rText )
rText = sNew.makeStringAndClear(); rText = sNew.makeStringAndClear();
if ( bNoOpen ) { if ( bNoOpen ) {
ByteString sTmp( rText ); rtl::OString sTmp( rText );
rText = "\""; rText = "\"";
rText += sTmp; rText += sTmp;
} }
@@ -1712,11 +1680,11 @@ sal_Bool Export::PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp,
// position to merge in: // position to merge in:
sal_Int32 nStart = 0; sal_Int32 nStart = 0;
sal_Int32 nEnd = 0; sal_Int32 nEnd = 0;
ByteString sOldId = pResData->sId; rtl::OString sOldId = pResData->sId;
ByteString sOldGId = pResData->sGId; rtl::OString sOldGId = pResData->sGId;
ByteString sOldTyp = pResData->sResTyp; rtl::OString sOldTyp = pResData->sResTyp;
ByteString sOrigText( rText ); rtl::OString sOrigText( rText );
switch ( nTyp ) { switch ( nTyp ) {
case LIST_STRING : case LIST_STRING :
@@ -1785,7 +1753,7 @@ sal_Bool Export::PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp,
if (( sLastListLine.indexOf( '>' ) != -1 ) && if (( sLastListLine.indexOf( '>' ) != -1 ) &&
( sLastListLine.indexOf( '<' ) == -1 )) ( sLastListLine.indexOf( '<' ) == -1 ))
{ {
ByteString sTmp = sLastListLine; rtl::OString sTmp = sLastListLine;
sLastListLine = "<"; sLastListLine = "<";
sLastListLine += sTmp; sLastListLine += sTmp;
} }
@@ -1850,8 +1818,7 @@ sal_Bool Export::PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp,
pMergeDataFile = new MergeDataFile( sMergeSrc, sFile, bErrorLog ); pMergeDataFile = new MergeDataFile( sMergeSrc, sFile, bErrorLog );
// Init Languages // Init Languages
ByteString sTmp = Export::sLanguages; if( Export::sLanguages.equalsIgnoreAsciiCase("ALL") )
if( sTmp.ToUpperAscii().Equals("ALL") )
SetLanguages( pMergeDataFile->GetLanguages() ); SetLanguages( pMergeDataFile->GetLanguages() );
else if( !isInitialized )InitLanguages(); else if( !isInitialized )InitLanguages();
@@ -1878,7 +1845,7 @@ sal_Bool Export::PrepareTextToMerge(rtl::OString &rText, sal_uInt16 nTyp,
if (Export::isSourceLanguage(rLangIndex)) if (Export::isSourceLanguage(rLangIndex))
return sal_False; return sal_False;
ByteString sPostFix( rText.copy( ++nEnd )); rtl::OString sPostFix( rText.copy( ++nEnd ));
rText = rText.copy(0, nStart); rText = rText.copy(0, nStart);
ConvertMergeContent( sContent ); ConvertMergeContent( sContent );
@@ -1900,8 +1867,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
pMergeDataFile = new MergeDataFile( sMergeSrc, sFile, bErrorLog ); pMergeDataFile = new MergeDataFile( sMergeSrc, sFile, bErrorLog );
// Init Languages // Init Languages
ByteString sTmp = Export::sLanguages; if (Export::sLanguages.equalsIgnoreAsciiCase("ALL"))
if( sTmp.ToUpperAscii().Equals("ALL") )
SetLanguages( pMergeDataFile->GetLanguages() ); SetLanguages( pMergeDataFile->GetLanguages() );
else if( !isInitialized )InitLanguages(); else if( !isInitialized )InitLanguages();
@@ -1915,16 +1881,14 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
sal_Bool bAddSemikolon = sal_False; sal_Bool bAddSemikolon = sal_False;
sal_Bool bFirst = sal_True; sal_Bool bFirst = sal_True;
ByteString sCur; rtl::OString sCur;
ByteString sTmp = Export::sLanguages;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int n = 0; n < aLanguages.size(); n++ ){
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
rtl::OString sText; rtl::OString sText;
sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TEXT, sCur , sal_True ); sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TEXT, sCur , sal_True );
if ( bText && !sText.isEmpty() && sText != "-" ) { if ( bText && !sText.isEmpty() && sText != "-" ) {
ByteString sOutput; rtl::OString sOutput;
if ( bNextMustBeDefineEOL) { if ( bNextMustBeDefineEOL) {
if ( bFirst ) if ( bFirst )
sOutput += "\t\\\n"; sOutput += "\t\\\n";
@@ -1960,7 +1924,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
if ( bAddSemikolon ) { if ( bAddSemikolon ) {
ByteString sOutput( ";" ); rtl::OString sOutput( ";" );
WriteToMerged( sOutput , false ); WriteToMerged( sOutput , false );
} }
} }
@@ -1968,7 +1932,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
if ( pEntry && pResData->bQuickHelpText ) { if ( pEntry && pResData->bQuickHelpText ) {
sal_Bool bAddSemikolon = sal_False; sal_Bool bAddSemikolon = sal_False;
sal_Bool bFirst = sal_True; sal_Bool bFirst = sal_True;
ByteString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int n = 0; n < aLanguages.size(); n++ ){
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
@@ -1976,7 +1940,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
rtl::OString sText; rtl::OString sText;
sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_QUICKHELPTEXT, sCur, sal_True ); sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_QUICKHELPTEXT, sCur, sal_True );
if ( bText && !sText.isEmpty() && sText != "-" ) { if ( bText && !sText.isEmpty() && sText != "-" ) {
ByteString sOutput; rtl::OString sOutput;
if ( bNextMustBeDefineEOL) { if ( bNextMustBeDefineEOL) {
if ( bFirst ) if ( bFirst )
sOutput += "\t\\\n"; sOutput += "\t\\\n";
@@ -2006,7 +1970,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
} }
} }
if ( bAddSemikolon ) { if ( bAddSemikolon ) {
ByteString sOutput( ";" ); rtl::OString sOutput( ";" );
WriteToMerged( sOutput , false ); WriteToMerged( sOutput , false );
} }
} }
@@ -2014,7 +1978,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
if ( pEntry && pResData->bTitle ) { if ( pEntry && pResData->bTitle ) {
sal_Bool bAddSemikolon = sal_False; sal_Bool bAddSemikolon = sal_False;
sal_Bool bFirst = sal_True; sal_Bool bFirst = sal_True;
ByteString sCur; rtl::OString sCur;
for( unsigned int n = 0; n < aLanguages.size(); n++ ){ for( unsigned int n = 0; n < aLanguages.size(); n++ ){
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
@@ -2022,7 +1986,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
rtl::OString sText; rtl::OString sText;
sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TITLE, sCur, sal_True ); sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TITLE, sCur, sal_True );
if ( bText && !sText.isEmpty() && sText != "-" ) { if ( bText && !sText.isEmpty() && sText != "-" ) {
ByteString sOutput; rtl::OString sOutput;
if ( bNextMustBeDefineEOL) { if ( bNextMustBeDefineEOL) {
if ( bFirst ) if ( bFirst )
sOutput += "\t\\\n"; sOutput += "\t\\\n";
@@ -2052,7 +2016,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
} }
} }
if ( bAddSemikolon ) { if ( bAddSemikolon ) {
ByteString sOutput( ";" ); rtl::OString sOutput( ";" );
WriteToMerged( sOutput ,false); WriteToMerged( sOutput ,false);
} }
} }
@@ -2060,13 +2024,13 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
if ( pResData->bList ) { if ( pResData->bList ) {
bool bPairedList = false; bool bPairedList = false;
ByteString sOldId = pResData->sId; rtl::OString sOldId = pResData->sId;
ByteString sOldGId = pResData->sGId; rtl::OString sOldGId = pResData->sGId;
ByteString sOldTyp = pResData->sResTyp; rtl::OString sOldTyp = pResData->sResTyp;
if (!pResData->sGId.isEmpty()) if (!pResData->sGId.isEmpty())
pResData->sGId = pResData->sGId + rtl::OString('.'); pResData->sGId = pResData->sGId + rtl::OString('.');
pResData->sGId = pResData->sGId + sOldId; pResData->sGId = pResData->sGId + sOldId;
ByteString sSpace; rtl::OString sSpace;
for ( sal_uInt16 i = 1; i < nLevel-1; i++ ) for ( sal_uInt16 i = 1; i < nLevel-1; i++ )
sSpace += "\t"; sSpace += "\t";
for ( sal_uInt16 nT = LIST_STRING; nT <= LIST_UIENTRIES; nT++ ) { for ( sal_uInt16 nT = LIST_STRING; nT <= LIST_UIENTRIES; nT++ ) {
@@ -2090,7 +2054,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
pResData->sId = GetPairedListID ( (*pListE)[ SOURCE_LANGUAGE ] ); pResData->sId = GetPairedListID ( (*pListE)[ SOURCE_LANGUAGE ] );
} }
else else
pResData->sId = ByteString("1"); pResData->sId = "1";
PFormEntrys *pEntrys; PFormEntrys *pEntrys;
sal_uLong nLIndex = 0; sal_uLong nLIndex = 0;
@@ -2169,7 +2133,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
sal_Int32 nStart, nEnd; sal_Int32 nStart, nEnd;
nStart = sLine.indexOf( '"' ); nStart = sLine.indexOf( '"' );
ByteString sPostFix; rtl::OString sPostFix;
if( !bPairedList ){ if( !bPairedList ){
nEnd = sLine.lastIndexOf( '"' ); nEnd = sLine.lastIndexOf( '"' );
sPostFix = sLine.copy( ++nEnd ); sPostFix = sLine.copy( ++nEnd );
@@ -2188,7 +2152,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
sLine += sPostFix; sLine += sPostFix;
} }
ByteString sText1( "\t" ); rtl::OString sText1( "\t" );
sText1 += sLine; sText1 += sLine;
if ( bDefine || bNextMustBeDefineEOL ) if ( bDefine || bNextMustBeDefineEOL )
sText1 += " ;\\\n"; sText1 += " ;\\\n";
@@ -2218,7 +2182,10 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
pEntrys = oldEntry; pEntrys = oldEntry;
} }
if ( nIdx > 1 ) { if ( nIdx > 1 ) {
ByteString sFooter( sSpace.Copy( 1 )); rtl::OString sFooter;
if (!sSpace.isEmpty()) {
sFooter = sSpace.copy(1);
}
if ( bNextMustBeDefineEOL ) if ( bNextMustBeDefineEOL )
sFooter += "};"; sFooter += "};";
else if ( !bDefine ) else if ( !bDefine )
@@ -2270,7 +2237,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
} }
while( PrepareTextToMerge( sLine, nList, m_sListLang, pResData ) && ( nListIndex <= nMaxIndex )) { while( PrepareTextToMerge( sLine, nList, m_sListLang, pResData ) && ( nListIndex <= nMaxIndex )) {
ByteString sText( "\t" ); rtl::OString sText( "\t" );
sText += sLine; sText += sLine;
sText += " ;"; sText += " ;";
sText += "\n"; sText += "\n";

View File

@@ -114,9 +114,9 @@ void Export::DumpMap(const rtl::OString& rMapName,
return; return;
for(OStringHashMap::const_iterator idbg = aMap.begin(); idbg != aMap.end(); ++idbg) for(OStringHashMap::const_iterator idbg = aMap.begin(); idbg != aMap.end(); ++idbg)
{ {
ByteString a( idbg->first ); rtl::OString a( idbg->first );
ByteString b( idbg->second ); rtl::OString b( idbg->second );
printf("[%s]= %s",a.GetBuffer(),b.GetBuffer()); printf("[%s]= %s",a.getStr(),b.getStr());
printf("\n"); printf("\n");
} }
printf("\n"); printf("\n");
@@ -343,7 +343,7 @@ void Export::InitLanguages( bool bMergeMode ){
/*****************************************************************************/ /*****************************************************************************/
if( !isInitialized ) if( !isInitialized )
{ {
ByteString sTmp; rtl::OString sTmp;
OStringBoolHashMap aEnvLangs; OStringBoolHashMap aEnvLangs;
sal_Int32 nIndex = 0; sal_Int32 nIndex = 0;
@@ -353,7 +353,7 @@ void Export::InitLanguages( bool bMergeMode ){
sTmp = getToken(aToken, 0, '='); sTmp = getToken(aToken, 0, '=');
sTmp = comphelper::string::strip(sTmp, ' '); sTmp = comphelper::string::strip(sTmp, ' ');
if( bMergeMode && !isAllowed( sTmp ) ){} if( bMergeMode && !isAllowed( sTmp ) ){}
else if( !( (sTmp.GetChar(0)=='x' || sTmp.GetChar(0)=='X') && sTmp.GetChar(1)=='-' ) ){ else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ){
aLanguages.push_back( sTmp ); aLanguages.push_back( sTmp );
} }
} }
@@ -366,7 +366,7 @@ void Export::InitLanguages( bool bMergeMode ){
/*****************************************************************************/ /*****************************************************************************/
void Export::InitForcedLanguages( bool bMergeMode ){ void Export::InitForcedLanguages( bool bMergeMode ){
/*****************************************************************************/ /*****************************************************************************/
ByteString sTmp; rtl::OString sTmp;
OStringBoolHashMap aEnvLangs; OStringBoolHashMap aEnvLangs;
sal_Int32 nIndex = 0; sal_Int32 nIndex = 0;
@@ -377,7 +377,7 @@ void Export::InitForcedLanguages( bool bMergeMode ){
sTmp = getToken(aToken, 0, '='); sTmp = getToken(aToken, 0, '=');
sTmp = comphelper::string::strip(sTmp, ' '); sTmp = comphelper::string::strip(sTmp, ' ');
if( bMergeMode && isAllowed( sTmp ) ){} if( bMergeMode && isAllowed( sTmp ) ){}
else if( !( (sTmp.GetChar(0)=='x' || sTmp.GetChar(0)=='X') && sTmp.GetChar(1)=='-' ) ) else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) )
aForcedLanguages.push_back( sTmp ); aForcedLanguages.push_back( sTmp );
} }
while ( nIndex >= 0 ); while ( nIndex >= 0 );
@@ -399,8 +399,8 @@ sal_Bool Export::ConvertLineEnds(
rtl::OString const & sSource, rtl::OString const & sDestination ) rtl::OString const & sSource, rtl::OString const & sDestination )
/*****************************************************************************/ /*****************************************************************************/
{ {
String sSourceFile( sSource, RTL_TEXTENCODING_ASCII_US ); rtl::OUString sSourceFile(rtl::OStringToOUString(sSource, RTL_TEXTENCODING_ASCII_US));
String sDestinationFile( sDestination, RTL_TEXTENCODING_ASCII_US ); rtl::OUString sDestinationFile(rtl::OStringToOUString(sDestination, RTL_TEXTENCODING_ASCII_US));
SvFileStream aSource( sSourceFile, STREAM_READ ); SvFileStream aSource( sSourceFile, STREAM_READ );
if ( !aSource.IsOpen()) if ( !aSource.IsOpen())
@@ -512,10 +512,10 @@ DirEntry Export::GetTempFile()
int nRC = osl::FileBase::createTempFile( 0 , 0 , sTempFilename ); int nRC = osl::FileBase::createTempFile( 0 , 0 , sTempFilename );
if( nRC ) printf(" osl::FileBase::createTempFile RC = %d",nRC); if( nRC ) printf(" osl::FileBase::createTempFile RC = %d",nRC);
String strTmp( *sTempFilename ); rtl::OUString strTmp( *sTempFilename );
INetURLObject::DecodeMechanism eMechanism = INetURLObject::DECODE_TO_IURI; INetURLObject::DecodeMechanism eMechanism = INetURLObject::DECODE_TO_IURI;
String sDecodedStr = INetURLObject::decode( strTmp , '%' , eMechanism ); rtl::OUString sDecodedStr = INetURLObject::decode( strTmp , '%' , eMechanism );
rtl::OString sTmp(rtl::OUStringToOString(sDecodedStr , RTL_TEXTENCODING_UTF8)); rtl::OString sTmp(rtl::OUStringToOString(sDecodedStr , RTL_TEXTENCODING_UTF8));
#if defined(WNT) #if defined(WNT)

View File

@@ -64,9 +64,9 @@ void PrintError( rtl::OString const & aMsg, rtl::OString const & aPrefix,
PrintMessage( "Error:", aMsg, aPrefix, aContext, bPrintContext, nLine, aUniqueId ); PrintMessage( "Error:", aMsg, aPrefix, aContext, bPrintContext, nLine, aUniqueId );
} }
sal_Bool LanguageOK( ByteString aLang ) sal_Bool LanguageOK( rtl::OString const & aLang )
{ {
if ( !aLang.Len() ) if (aLang.isEmpty())
return sal_False; return sal_False;
using comphelper::string::isdigitAsciiString; using comphelper::string::isdigitAsciiString;
@@ -80,11 +80,11 @@ sal_Bool LanguageOK( ByteString aLang )
return islowerAsciiString(aLang); return islowerAsciiString(aLang);
else if ( getTokenCount(aLang, '-') == 2 ) else if ( getTokenCount(aLang, '-') == 2 )
{ {
ByteString aTok0( getToken(aLang, 0, '-') ); rtl::OString aTok0( getToken(aLang, 0, '-') );
ByteString aTok1( getToken(aLang, 1, '-') ); rtl::OString aTok1( getToken(aLang, 1, '-') );
return aTok0.Len() && islowerAsciiString(aTok0) return !aTok0.isEmpty() && islowerAsciiString(aTok0)
&& aTok1.Len() && isupperAsciiString(aTok1) && !aTok1.isEmpty() && isupperAsciiString(aTok1)
&& !aTok1.EqualsIgnoreCaseAscii( aTok0 ); && !aTok1.equalsIgnoreAsciiCase( aTok0 );
} }
return sal_False; return sal_False;
@@ -99,7 +99,7 @@ class LazySvFileStream : public SvFileStream
{ {
private: private:
String aFileName; rtl::OUString aFileName;
sal_Bool bOpened; sal_Bool bOpened;
StreamMode eOpenMode; StreamMode eOpenMode;
@@ -110,7 +110,7 @@ public:
, eOpenMode( 0 ) , eOpenMode( 0 )
{}; {};
void SetOpenParams( const String& rFileName, StreamMode eOpenModeP ) void SetOpenParams( const rtl::OUString& rFileName, StreamMode eOpenModeP )
{ {
aFileName = rFileName; aFileName = rFileName;
eOpenMode = eOpenModeP; eOpenMode = eOpenModeP;
@@ -207,28 +207,27 @@ void GSILine::NotOK()
void GSILine::ReassembleLine() void GSILine::ReassembleLine()
/*****************************************************************************/ /*****************************************************************************/
{ {
ByteString aReassemble;
if ( GetLineFormat() == FORMAT_SDF ) if ( GetLineFormat() == FORMAT_SDF )
{ {
sal_uInt16 i; rtl::OStringBuffer aReassemble;
for ( i = 0 ; i < 10 ; i++ ) for (sal_Int32 i = 0; i < 10; ++i)
{ {
aReassemble.Append( helper::getToken( data_, i, '\t' ) ); aReassemble.append( helper::getToken( data_, i, '\t' ) );
aReassemble.Append( "\t" ); aReassemble.append( "\t" );
} }
aReassemble.Append( aText ); aReassemble.append( aText );
aReassemble.Append( "\t" ); aReassemble.append( "\t" );
aReassemble.Append( helper::getToken( data_, 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( "\t" );
aReassemble.Append( aQuickHelpText ); aReassemble.append( aQuickHelpText );
aReassemble.Append( "\t" ); aReassemble.append( "\t" );
aReassemble.Append( aTitle ); aReassemble.append( aTitle );
for ( i = 14 ; i < 15 ; i++ ) for (sal_Int32 i = 14; i < 15; ++i)
{ {
aReassemble.Append( "\t" ); aReassemble.append( "\t" );
aReassemble.Append( helper::getToken( data_, i, '\t' ) ); aReassemble.append( helper::getToken( data_, i, '\t' ) );
} }
*(ByteString*)this = aReassemble; data_ = aReassemble.makeStringAndClear();
} }
else else
PrintError( "Cannot reassemble line of unknown type (internal Error).", "Line format", "", sal_False, GetLineNumber(), GetUniqId() ); PrintError( "Cannot reassemble line of unknown type (internal Error).", "Line format", "", sal_False, GetLineNumber(), GetUniqId() );
@@ -329,7 +328,7 @@ void GSIBlock::PrintList( ParserMessageList *pList, rtl::OString const & aPrefix
for ( size_t i = 0 ; i < pList->size() ; i++ ) for ( size_t i = 0 ; i < pList->size() ; i++ )
{ {
ParserMessage *pMsg = (*pList)[ i ]; ParserMessage *pMsg = (*pList)[ i ];
ByteString aContext; rtl::OString aContext;
if ( bPrintContext ) if ( bPrintContext )
{ {
if ( pMsg->GetTagBegin() == STRING_NOTFOUND ) if ( pMsg->GetTagBegin() == STRING_NOTFOUND )
@@ -345,21 +344,28 @@ void GSIBlock::PrintList( ParserMessageList *pList, rtl::OString const & aPrefix
} }
/*****************************************************************************/ /*****************************************************************************/
sal_Bool GSIBlock::IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_uInt16 &nErrorPos, rtl::OString &aErrorMsg, sal_Bool &bHasBeenFixed, rtl::OString &aFixed ) const sal_Bool GSIBlock::IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_Int32 &nErrorPos, rtl::OString &aErrorMsg, sal_Bool &bHasBeenFixed, rtl::OString &aFixed ) const
/*****************************************************************************/ /*****************************************************************************/
{ {
String aUTF8Tester(rtl::OStringToOUString(aTestee, RTL_TEXTENCODING_UTF8)); rtl::OUString aUTF8Tester(
if ( STRING_MATCH != (nErrorPos = ByteString(rtl::OUStringToOString(aUTF8Tester, RTL_TEXTENCODING_UTF8)).Match( aTestee )) ) rtl::OStringToOUString(aTestee, RTL_TEXTENCODING_UTF8));
nErrorPos = rtl::OUStringToOString(aUTF8Tester, RTL_TEXTENCODING_UTF8).
indexOf(aTestee);
if (nErrorPos != -1)
{ {
aUTF8Tester = String( aTestee.getStr(), nErrorPos, RTL_TEXTENCODING_UTF8 ); aUTF8Tester = rtl::OUString(
nErrorPos = aUTF8Tester.Len(); aTestee.getStr(), nErrorPos, RTL_TEXTENCODING_UTF8);
nErrorPos = aUTF8Tester.getLength();
aErrorMsg = "UTF8 Encoding seems to be broken"; aErrorMsg = "UTF8 Encoding seems to be broken";
return sal_False; return sal_False;
} }
nErrorPos = aUTF8Tester.SearchChar( String::CreateFromAscii( "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0e\x0f" nErrorPos = helper::indexOfAnyAsciiL(
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f" ).GetBuffer() ); aUTF8Tester,
if ( nErrorPos != STRING_NOTFOUND ) RTL_CONSTASCII_STRINGPARAM(
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0e\x0f\x10\x11\x12"
"\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f"));
if (nErrorPos != -1)
{ {
aErrorMsg = "String contains illegal character"; aErrorMsg = "String contains illegal character";
return sal_False; return sal_False;
@@ -378,16 +384,16 @@ sal_Bool GSIBlock::IsUTF8( const rtl::OString &aTestee, sal_Bool bFixTags, sal_u
sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags ) sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags )
/*****************************************************************************/ /*****************************************************************************/
{ {
sal_uInt16 nErrorPos = 0; sal_Int32 nErrorPos = 0;
rtl::OString aErrorMsg; rtl::OString aErrorMsg;
sal_Bool bError = sal_False; sal_Bool bError = sal_False;
rtl::OString aFixed; rtl::OString aFixed;
sal_Bool bHasBeenFixed = sal_False; sal_Bool bHasBeenFixed = sal_False;
if ( !IsUTF8( pTestee->GetText(), bFixTags, nErrorPos, aErrorMsg, bHasBeenFixed, aFixed ) ) if ( !IsUTF8( pTestee->GetText(), bFixTags, nErrorPos, aErrorMsg, bHasBeenFixed, aFixed ) )
{ {
ByteString aContext( pTestee->GetText().copy( nErrorPos, 20 ) ); rtl::OString aContext( pTestee->GetText().copy( nErrorPos, 20 ) );
PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in Text at Position ")) PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in Text at Position "))
.append(static_cast<sal_Int32>(nErrorPos)).getStr(), .append(nErrorPos).getStr(),
"Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId());
bError = sal_True; bError = sal_True;
if ( bHasBeenFixed ) if ( bHasBeenFixed )
@@ -400,7 +406,7 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags )
{ {
rtl::OString 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 ")) PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in QuickHelpText at Position "))
.append(static_cast<sal_Int32>(nErrorPos)).getStr(), .append(nErrorPos).getStr(),
"Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId());
bError = sal_True; bError = sal_True;
if ( bHasBeenFixed ) if ( bHasBeenFixed )
@@ -413,7 +419,7 @@ sal_Bool GSIBlock::TestUTF8( GSILine* pTestee, sal_Bool bFixTags )
{ {
rtl::OString 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 ")) PrintError(rtl::OStringBuffer(aErrorMsg).append(RTL_CONSTASCII_STRINGPARAM(" in Title at Position "))
.append(static_cast<sal_Int32>(nErrorPos)).getStr(), .append(nErrorPos).getStr(),
"Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId());
bError = sal_True; bError = sal_True;
if ( bHasBeenFixed ) if ( bHasBeenFixed )
@@ -436,11 +442,13 @@ sal_Bool GSIBlock::HasSuspiciousChars( GSILine* pTestee, GSILine* pSource )
if ( !bAllowSuspicious && ( nPos = pTestee->GetText().indexOf("??")) != -1 ) if ( !bAllowSuspicious && ( nPos = pTestee->GetText().indexOf("??")) != -1 )
if ( pSource->GetText().indexOf("??") == -1 ) if ( pSource->GetText().indexOf("??") == -1 )
{ {
String aUTF8Tester = String( pTestee->GetText(), 0, nPos, RTL_TEXTENCODING_UTF8 ); rtl::OUString aUTF8Tester(
sal_uInt16 nErrorPos = aUTF8Tester.Len(); rtl::OStringToOUString(
pTestee->GetText().copy(0, nPos), RTL_TEXTENCODING_UTF8));
sal_Int32 nErrorPos = aUTF8Tester.getLength();
rtl::OString 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 ")) 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(), .append(nErrorPos).getStr(),
"Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId()); "Text format", aContext, pTestee->GetLineNumber(), pTestee->GetUniqId());
pTestee->NotOK(); pTestee->NotOK();
return sal_True; return sal_True;
@@ -494,10 +502,10 @@ sal_Bool GSIBlock::CheckSyntax( sal_uLong nLine, sal_Bool bRequireSourceLine, sa
{ {
if ( pSourceLine && pSourceLine->data_ != pReferenceLine->data_ ) if ( pSourceLine && pSourceLine->data_ != pReferenceLine->data_ )
{ {
xub_StrLen nPos = ByteString(pSourceLine->data_).Match( pReferenceLine->data_ ); sal_Int32 nPos = pSourceLine->data_.indexOf( pReferenceLine->data_ );
ByteString aContext( pReferenceLine->data_.copy( nPos - 5, 15) ); rtl::OStringBuffer aContext( pReferenceLine->data_.copy( nPos - 5, 15) );
aContext.Append( "\" --> \"" ).Append( pSourceLine->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() ); PrintError( "Source Language Entry has changed.", "File format", aContext.makeStringAndClear(), pSourceLine->GetLineNumber(), pSourceLine->GetUniqId() );
pSourceLine->NotOK(); pSourceLine->NotOK();
bHasError = sal_True; bHasError = sal_True;
} }
@@ -662,13 +670,13 @@ int _cdecl main( int argc, char *argv[] )
sal_Bool bWriteFixed = sal_False; sal_Bool bWriteFixed = sal_False;
sal_Bool bFixTags = sal_False; sal_Bool bFixTags = sal_False;
sal_Bool bAllowSuspicious = sal_False; sal_Bool bAllowSuspicious = sal_False;
String aErrorFilename; rtl::OUString aErrorFilename;
String aCorrectFilename; rtl::OUString aCorrectFilename;
String aFixedFilename; rtl::OUString aFixedFilename;
sal_Bool bFileHasError = sal_False; sal_Bool bFileHasError = sal_False;
rtl::OString aSourceLang( "en-US" ); // English is default rtl::OString aSourceLang( "en-US" ); // English is default
ByteString aFilename; rtl::OString aFilename;
ByteString aReferenceFilename; rtl::OString aReferenceFilename;
sal_Bool bReferenceFile = sal_False; sal_Bool bReferenceFile = sal_False;
for ( sal_uInt16 i = 1 ; i < argc ; i++ ) for ( sal_uInt16 i = 1 ; i < argc ; i++ )
{ {
@@ -685,7 +693,10 @@ int _cdecl main( int argc, char *argv[] )
if ( (*(argv[ i ]+3)) == 'f' ) if ( (*(argv[ i ]+3)) == 'f' )
if ( (i+1) < argc ) if ( (i+1) < argc )
{ {
aErrorFilename = String( argv[ i+1 ], RTL_TEXTENCODING_ASCII_US ); aErrorFilename = rtl::OUString(
argv[i + 1],
rtl_str_getLength(argv[i + 1]),
RTL_TEXTENCODING_ASCII_US);
bWriteError = sal_True; bWriteError = sal_True;
i++; i++;
} }
@@ -701,7 +712,10 @@ int _cdecl main( int argc, char *argv[] )
if ( (*(argv[ i ]+3)) == 'f' ) if ( (*(argv[ i ]+3)) == 'f' )
if ( (i+1) < argc ) if ( (i+1) < argc )
{ {
aCorrectFilename = String( argv[ i+1 ], RTL_TEXTENCODING_ASCII_US ); aCorrectFilename = rtl::OUString(
argv[i + 1],
rtl_str_getLength(argv[i + 1]),
RTL_TEXTENCODING_ASCII_US);
bWriteCorrect = sal_True; bWriteCorrect = sal_True;
i++; i++;
} }
@@ -716,7 +730,10 @@ int _cdecl main( int argc, char *argv[] )
if ( (*(argv[ i ]+3)) == 'f' ) if ( (*(argv[ i ]+3)) == 'f' )
if ( (i+1) < argc ) if ( (i+1) < argc )
{ {
aFixedFilename = String( argv[ i+1 ], RTL_TEXTENCODING_ASCII_US ); aFixedFilename = rtl::OUString(
argv[i + 1],
rtl_str_getLength(argv[i + 1]),
RTL_TEXTENCODING_ASCII_US);
bWriteFixed = sal_True; bWriteFixed = sal_True;
bFixTags = sal_True; bFixTags = sal_True;
i++; i++;
@@ -790,8 +807,8 @@ int _cdecl main( int argc, char *argv[] )
} }
else else
{ {
if ( !aFilename.Len()) if (aFilename.isEmpty())
aFilename = ByteString( argv[ i ] ); aFilename = argv[i];
else else
{ {
fprintf( stderr, "\nERROR: Only one filename may be specified!\n\n"); fprintf( stderr, "\nERROR: Only one filename may be specified!\n\n");
@@ -801,7 +818,7 @@ int _cdecl main( int argc, char *argv[] )
} }
if ( !aFilename.Len() || bError ) if (aFilename.isEmpty() || bError)
{ {
Help(); Help();
exit ( 0 ); exit ( 0 );
@@ -823,42 +840,42 @@ int _cdecl main( int argc, char *argv[] )
DirEntry aSource = DirEntry( String( aFilename, RTL_TEXTENCODING_ASCII_US )); DirEntry aSource = DirEntry( rtl::OStringToOUString( aFilename, RTL_TEXTENCODING_ASCII_US ));
if ( !aSource.Exists()) { if ( !aSource.Exists()) {
fprintf( stderr, "\nERROR: GSI-File %s not found!\n\n", aFilename.GetBuffer() ); fprintf( stderr, "\nERROR: GSI-File %s not found!\n\n", aFilename.getStr() );
exit ( 2 ); exit ( 2 );
} }
SvFileStream aGSI( String( aFilename, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_READ ); SvFileStream aGSI( rtl::OStringToOUString( aFilename, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_READ );
if ( !aGSI.IsOpen()) { if ( !aGSI.IsOpen()) {
fprintf( stderr, "\nERROR: Could not open GSI-File %s!\n\n", aFilename.GetBuffer() ); fprintf( stderr, "\nERROR: Could not open GSI-File %s!\n\n", aFilename.getStr() );
exit ( 3 ); exit ( 3 );
} }
SvFileStream aReferenceGSI; SvFileStream aReferenceGSI;
if ( bReferenceFile ) if ( bReferenceFile )
{ {
DirEntry aReferenceSource = DirEntry( String( aReferenceFilename, RTL_TEXTENCODING_ASCII_US )); DirEntry aReferenceSource = DirEntry( rtl::OStringToOUString( aReferenceFilename, RTL_TEXTENCODING_ASCII_US ));
if ( !aReferenceSource.Exists()) { if ( !aReferenceSource.Exists()) {
fprintf( stderr, "\nERROR: GSI-File %s not found!\n\n", aFilename.GetBuffer() ); fprintf( stderr, "\nERROR: GSI-File %s not found!\n\n", aFilename.getStr() );
exit ( 2 ); exit ( 2 );
} }
aReferenceGSI.Open( String( aReferenceFilename, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_READ ); aReferenceGSI.Open( rtl::OStringToOUString( aReferenceFilename, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_READ );
if ( !aReferenceGSI.IsOpen()) { if ( !aReferenceGSI.IsOpen()) {
fprintf( stderr, "\nERROR: Could not open Input-File %s!\n\n", aFilename.GetBuffer() ); fprintf( stderr, "\nERROR: Could not open Input-File %s!\n\n", aFilename.getStr() );
exit ( 3 ); exit ( 3 );
} }
} }
LazySvFileStream aOkOut; LazySvFileStream aOkOut;
String aBaseName = aSource.GetBase(); rtl::OUString aBaseName(aSource.GetBase());
if ( bWriteCorrect ) if ( bWriteCorrect )
{ {
if ( !aCorrectFilename.Len() ) if (aCorrectFilename.isEmpty())
{ {
String sTmpBase( aBaseName ); rtl::OUString sTmpBase(aBaseName);
sTmpBase += String( "_ok", RTL_TEXTENCODING_ASCII_US ); sTmpBase += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_ok"));
aSource.SetBase( sTmpBase ); aSource.SetBase( sTmpBase );
aCorrectFilename = aSource.GetFull(); aCorrectFilename = aSource.GetFull();
} }
@@ -868,10 +885,10 @@ int _cdecl main( int argc, char *argv[] )
LazySvFileStream aErrOut; LazySvFileStream aErrOut;
if ( bWriteError ) if ( bWriteError )
{ {
if ( !aErrorFilename.Len() ) if (aErrorFilename.isEmpty())
{ {
String sTmpBase( aBaseName ); rtl::OUString sTmpBase(aBaseName);
sTmpBase += String( "_err", RTL_TEXTENCODING_ASCII_US ); sTmpBase += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_err"));
aSource.SetBase( sTmpBase ); aSource.SetBase( sTmpBase );
aErrorFilename = aSource.GetFull(); aErrorFilename = aSource.GetFull();
} }
@@ -881,10 +898,10 @@ int _cdecl main( int argc, char *argv[] )
LazySvFileStream aFixOut; LazySvFileStream aFixOut;
if ( bWriteFixed ) if ( bWriteFixed )
{ {
if ( !aFixedFilename.Len() ) if (aFixedFilename.isEmpty())
{ {
String sTmpBase( aBaseName ); rtl::OUString sTmpBase(aBaseName);
sTmpBase += String( "_fix", RTL_TEXTENCODING_ASCII_US ); sTmpBase += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_fix"));
aSource.SetBase( sTmpBase ); aSource.SetBase( sTmpBase );
aFixedFilename = aSource.GetFull(); aFixedFilename = aSource.GetFull();
} }
@@ -894,7 +911,6 @@ int _cdecl main( int argc, char *argv[] )
rtl::OString sReferenceLine; rtl::OString sReferenceLine;
GSILine* pReferenceLine = NULL; GSILine* pReferenceLine = NULL;
ByteString aOldReferenceId("No Valid ID"); // just set to something which can never be an ID
sal_uLong nReferenceLine = 0; sal_uLong nReferenceLine = 0;
rtl::OString sGSILine; rtl::OString sGSILine;

View File

@@ -56,6 +56,21 @@ inline sal_Int32 searchAndReplace(
return i; return i;
} }
inline void searchAndReplaceAll(
rtl::OString * text, rtl::OString const & search,
rtl::OString const & replace)
{
assert(text != 0);
for (sal_Int32 i = 0;;) {
i = text->indexOf(search, i);
if (i == -1) {
break;
}
*text = text->replaceAt(i, search.getLength(), replace);
i += replace.getLength();
}
}
inline rtl::OString getToken( inline rtl::OString getToken(
rtl::OString const & text, sal_Int32 token, char separator) rtl::OString const & text, sal_Int32 token, char separator)
{ {
@@ -63,6 +78,23 @@ inline rtl::OString getToken(
return text.getToken(token, separator, i); return text.getToken(token, separator, i);
} }
inline sal_Int32 indexOfAnyAsciiL(
rtl::OUString const & text, char const * chars, sal_Int32 charsLen,
sal_Int32 index = 0)
{
for (; index != text.getLength(); ++index) {
sal_Unicode c = text[index];
if (c <= 0x7F
&& (rtl_str_indexOfChar_WithLength(
chars, charsLen, static_cast< char >(c))
!= -1))
{
return index;
}
}
return -1;
}
} }
#endif #endif

View File

@@ -57,7 +57,7 @@ void HelpParser::Dump(XMLHashMap* rElem_in)
void HelpParser::Dump(LangHashMap* rElem_in,const rtl::OString & sKey_in) void HelpParser::Dump(LangHashMap* rElem_in,const rtl::OString & sKey_in)
{ {
ByteString x; rtl::OString x;
OString y; OString y;
fprintf(stdout,"+------------%s-----------+\n",sKey_in.getStr() ); fprintf(stdout,"+------------%s-----------+\n",sKey_in.getStr() );
for(LangHashMap::iterator posn=rElem_in->begin();posn!=rElem_in->end();++posn) for(LangHashMap::iterator posn=rElem_in->begin();posn!=rElem_in->end();++posn)
@@ -111,15 +111,13 @@ bool HelpParser::CreateSDF(
sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US ); sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US );
} }
// ByteString fullFilePath; rtl::OString fullFilePath = rPrj_in;
//DirEntry aFile( sXmlFile ); fullFilePath += "\\";
//makeAbsolutePath( sHelpFile , rRoot_in); fullFilePath += makeAbsolutePath( sHelpFile , rRoot_in );
ByteString fullFilePath = rPrj_in; fullFilePath = fullFilePath.replace('\\', '/');
fullFilePath.Append( "\\" );
fullFilePath.Append( makeAbsolutePath( sHelpFile , rRoot_in ) );
fullFilePath.SearchAndReplaceAll( "\\", "/" );
String strFullPath( fullFilePath.GetBuffer() , RTL_TEXTENCODING_ASCII_US ); rtl::OUString strFullPath(
rtl::OStringToOUString(fullFilePath, RTL_TEXTENCODING_ASCII_US));
//printf( "%s\n", fullFilePath.GetBuffer() ); //printf( "%s\n", fullFilePath.GetBuffer() );
std::auto_ptr <XMLFile> file ( aParser.Execute( strFullPath , sXmlFile, pXmlFile ) ); std::auto_ptr <XMLFile> file ( aParser.Execute( strFullPath , sXmlFile, pXmlFile ) );
@@ -147,8 +145,9 @@ bool HelpParser::CreateSDF(
LangHashMap* pElem; LangHashMap* pElem;
XMLElement* pXMLElement = NULL; XMLElement* pXMLElement = NULL;
ByteString sTimeStamp( Export::GetTimeStamp() ); OUString sOUTimeStamp(
OUString sOUTimeStamp( sTimeStamp.GetBuffer() , sTimeStamp.Len() , RTL_TEXTENCODING_ASCII_US ); rtl::OStringToOUString(
Export::GetTimeStamp(), RTL_TEXTENCODING_ASCII_US));
OUStringBuffer sBuffer; OUStringBuffer sBuffer;
const OUString sOUPrj( rPrj_in.getStr() , rPrj_in.getLength() , RTL_TEXTENCODING_ASCII_US ); const OUString sOUPrj( rPrj_in.getStr() , rPrj_in.getLength() , RTL_TEXTENCODING_ASCII_US );

View File

@@ -35,6 +35,7 @@
#endif #endif
#include "gsicheck.hxx" #include "gsicheck.hxx"
#include "helper.hxx"
#define HAS_FLAG( nFlags, nFlag ) ( ( nFlags & nFlag ) != 0 ) #define HAS_FLAG( nFlags, nFlag ) ( ( nFlags & nFlag ) != 0 )
#define SET_FLAG( nFlags, nFlag ) ( nFlags |= nFlag ) #define SET_FLAG( nFlags, nFlag ) ( nFlags |= nFlag )
@@ -42,7 +43,7 @@
TokenInfo::TokenInfo( TokenId pnId, sal_uInt16 nP, String paStr, ParserMessageList &rErrorList ) TokenInfo::TokenInfo( TokenId pnId, sal_uInt16 nP, rtl::OUString const & paStr, ParserMessageList &rErrorList )
: bClosed(sal_False) : bClosed(sal_False)
, bCloseTag(sal_False) , bCloseTag(sal_False)
, bIsBroken(sal_False) , bIsBroken(sal_False)
@@ -90,9 +91,9 @@ CLOSETAG_HAS_TAG_NAME '>' -> FINISHED
*/ */
void TokenInfo::SplitTag( ParserMessageList &rErrorList ) void TokenInfo::SplitTag( ParserMessageList &rErrorList )
{ {
sal_uInt16 nLastPos = 2; // skip initial \< sal_Int32 nLastPos = 2; // skip initial \<
sal_uInt16 nCheckPos = nLastPos; sal_Int32 nCheckPos = nLastPos;
String aDelims( String::CreateFromAscii( " \\=>/" ) ); static char const aDelims[] = " \\=>/";
String aPortion; String aPortion;
String aValue; // store the value of a property String aValue; // store the value of a property
rtl::OString aName; // store the name of a property/tag rtl::OString aName; // store the name of a property/tag
@@ -102,18 +103,19 @@ void TokenInfo::SplitTag( ParserMessageList &rErrorList )
tagcheck aState = TC_START; tagcheck aState = TC_START;
// skip blanks // skip blanks
while ( nLastPos < aTokenString.Len() && aTokenString.GetChar( nLastPos ) == ' ') while ( nLastPos < aTokenString.getLength() && aTokenString[nLastPos] == ' ')
nLastPos++; nLastPos++;
nCheckPos = aTokenString.SearchChar( aDelims.GetBuffer(), nLastPos ); nCheckPos = helper::indexOfAnyAsciiL(
while ( nCheckPos != STRING_NOTFOUND && !( aState == TC_FINISHED || aState == TC_ERROR ) ) aTokenString, RTL_CONSTASCII_STRINGPARAM(aDelims), nLastPos);
while ( nCheckPos != -1 && !( aState == TC_FINISHED || aState == TC_ERROR ) )
{ {
aPortion = aTokenString.Copy( nLastPos, nCheckPos-nLastPos ); aPortion = aTokenString.copy( nLastPos, nCheckPos-nLastPos );
if ( aTokenString.GetChar( nCheckPos ) == '\\' ) if ( aTokenString[nCheckPos] == '\\' )
nCheckPos++; nCheckPos++;
cDelim = aTokenString.GetChar( nCheckPos ); cDelim = aTokenString[nCheckPos];
nCheckPos++; nCheckPos++;
switch ( aState ) switch ( aState )
@@ -374,10 +376,11 @@ void TokenInfo::SplitTag( ParserMessageList &rErrorList )
// skip further blanks // skip further blanks
if ( cDelim == ' ' && aState != TC_INSIDE_STRING ) if ( cDelim == ' ' && aState != TC_INSIDE_STRING )
while ( nLastPos < aTokenString.Len() && aTokenString.GetChar( nLastPos ) == ' ') while ( nLastPos < aTokenString.getLength() && aTokenString[nLastPos] == ' ')
nLastPos++; nLastPos++;
nCheckPos = aTokenString.SearchChar( aDelims.GetBuffer(), nLastPos ); nCheckPos = helper::indexOfAnyAsciiL(
aTokenString, RTL_CONSTASCII_STRINGPARAM(aDelims), nLastPos);
} }
if ( aState != TC_FINISHED ) if ( aState != TC_FINISHED )
{ {
@@ -386,19 +389,19 @@ void TokenInfo::SplitTag( ParserMessageList &rErrorList )
} }
} }
sal_Bool TokenInfo::IsPropertyRelevant( const rtl::OString &rName, const String &rValue ) const sal_Bool TokenInfo::IsPropertyRelevant( const rtl::OString &rName, const rtl::OUString &rValue ) const
{ {
if ( aTagName.EqualsAscii( "alt" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("xml-lang")) ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("alt")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("xml-lang")) )
return sal_False; return sal_False;
if ( aTagName.EqualsAscii( "ahelp" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("visibility")) && rValue.EqualsAscii("visible") ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("ahelp")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("visibility")) && rValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("visible")) )
return sal_False; return sal_False;
if ( aTagName.EqualsAscii( "image" ) && (rName.equalsL(RTL_CONSTASCII_STRINGPARAM("width")) || rName.equalsL(RTL_CONSTASCII_STRINGPARAM("height"))) ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("image")) && (rName.equalsL(RTL_CONSTASCII_STRINGPARAM("width")) || rName.equalsL(RTL_CONSTASCII_STRINGPARAM("height"))) )
return sal_False; return sal_False;
return sal_True; return sal_True;
} }
sal_Bool TokenInfo::IsPropertyValueValid( const rtl::OString &rName, const String &rValue ) const sal_Bool TokenInfo::IsPropertyValueValid( const rtl::OString &rName, const rtl::OUString &rValue ) const
{ {
/* removed due to i56740 /* removed due to i56740
if ( aTagName.EqualsAscii( "switchinline" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("select")) ) if ( aTagName.EqualsAscii( "switchinline" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("select")) )
@@ -407,28 +410,28 @@ sal_Bool TokenInfo::IsPropertyValueValid( const rtl::OString &rName, const Strin
rValue.EqualsAscii("appl") || rValue.EqualsAscii("appl") ||
rValue.EqualsAscii("distrib"); rValue.EqualsAscii("distrib");
} */ } */
if ( aTagName.EqualsAscii( "caseinline" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("select")) ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("caseinline")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("select")) )
{ {
return /*!rValue.EqualsAscii("OS2") && removed due to i56740 */ return !rValue.isEmpty();
!rValue.EqualsAscii("");
} }
// we don't know any better so we assume it to be OK // we don't know any better so we assume it to be OK
return sal_True; return sal_True;
} }
sal_Bool TokenInfo::IsPropertyInvariant( const rtl::OString &rName, const String &rValue ) const sal_Bool TokenInfo::IsPropertyInvariant( const rtl::OString &rName, const rtl::OUString &rValue ) const
{ {
if ( aTagName.EqualsAscii( "link" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("name")) ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("link")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("name")) )
return sal_False; return sal_False;
if ( aTagName.EqualsAscii( "link" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("href")) ) if ( aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("link")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("href")) )
{ // check for external reference { // check for external reference
if ( rValue.Copy( 0, 5 ).EqualsIgnoreCaseAscii( "http:" ) return
|| rValue.Copy( 0, 6 ).EqualsIgnoreCaseAscii( "https:" ) !(rValue.matchIgnoreAsciiCaseAsciiL(
|| rValue.Copy( 0, 4 ).EqualsIgnoreCaseAscii( "ftp:" ) ) RTL_CONSTASCII_STRINGPARAM("http:"))
return sal_False; || rValue.matchIgnoreAsciiCaseAsciiL(
else RTL_CONSTASCII_STRINGPARAM("https:"))
return sal_True; || rValue.matchIgnoreAsciiCaseAsciiL(
RTL_CONSTASCII_STRINGPARAM("ftp:")));
} }
return sal_True; return sal_True;
} }
@@ -436,12 +439,12 @@ sal_Bool TokenInfo::IsPropertyInvariant( const rtl::OString &rName, const String
sal_Bool TokenInfo::IsPropertyFixable( const rtl::OString &rName ) const sal_Bool TokenInfo::IsPropertyFixable( const rtl::OString &rName ) const
{ {
// name everything that is allowed to be fixed automatically here // name everything that is allowed to be fixed automatically here
if ( (aTagName.EqualsAscii( "ahelp" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("hid"))) if ( (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("ahelp")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("hid")))
|| (aTagName.EqualsAscii( "link" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("href"))) || (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("link")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("href")))
|| (aTagName.EqualsAscii( "alt" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id"))) || (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("alt")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id")))
|| (aTagName.EqualsAscii( "variable" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id"))) || (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("variable")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id")))
|| (aTagName.EqualsAscii( "image" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("src"))) || (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("image")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("src")))
|| (aTagName.EqualsAscii( "image" ) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id")) )) || (aTagName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("image")) && rName.equalsL(RTL_CONSTASCII_STRINGPARAM("id")) ))
return sal_True; return sal_True;
return sal_False; return sal_False;
} }
@@ -455,7 +458,7 @@ sal_Bool TokenInfo::MatchesTranslation( TokenInfo& rInfo, sal_Bool bGenErrors, P
if ( nId != rInfo.nId ) if ( nId != rInfo.nId )
return sal_False; return sal_False;
if ( !aTagName.Equals( rInfo.aTagName ) ) if ( aTagName != rInfo.aTagName )
return sal_False; return sal_False;
// If one of the tags has formating errors already it does make no sense to check here, so return right away // If one of the tags has formating errors already it does make no sense to check here, so return right away
@@ -471,7 +474,7 @@ sal_Bool TokenInfo::MatchesTranslation( TokenInfo& rInfo, sal_Bool bGenErrors, P
{ {
if ( IsPropertyInvariant( iProp->first, iProp->second ) ) if ( IsPropertyInvariant( iProp->first, iProp->second ) )
{ {
if ( !rInfo.aProperties.find( iProp->first )->second.Equals( iProp->second ) ) if ( rInfo.aProperties.find( iProp->first )->second != iProp->second )
{ {
if ( bGenErrors ) if ( bGenErrors )
{ {
@@ -518,12 +521,12 @@ sal_Bool TokenInfo::MatchesTranslation( TokenInfo& rInfo, sal_Bool bGenErrors, P
return sal_True; return sal_True;
} }
String TokenInfo::GetTagName() const rtl::OUString TokenInfo::GetTagName() const
{ {
return aTagName; return aTagName;
} }
String TokenInfo::MakeTag() const rtl::OUString TokenInfo::MakeTag() const
{ {
String aRet; String aRet;
aRet.AppendAscii("\\<"); aRet.AppendAscii("\\<");
@@ -574,7 +577,7 @@ void ParserMessageList::clear()
struct Tag struct Tag
{ {
String GetName() const { return String::CreateFromAscii( pName ); }; rtl::OUString GetName() const { return rtl::OUString::createFromAscii( pName ); };
const char* pName; const char* pName;
TokenId nTag; TokenId nTag;
}; };
@@ -662,11 +665,11 @@ SimpleParser::SimpleParser()
{ {
} }
void SimpleParser::Parse( String PaSource ) void SimpleParser::Parse( rtl::OUString const & PaSource )
{ {
aSource = PaSource; aSource = PaSource;
nPos = 0; nPos = 0;
aLastToken.Erase(); aLastToken = rtl::OUString();
aNextTag = TokenInfo( TAG_NOMORETAGS, TOK_INVALIDPOS ); aNextTag = TokenInfo( TAG_NOMORETAGS, TOK_INVALIDPOS );
aTokenList.clear(); aTokenList.clear();
}; };
@@ -683,18 +686,21 @@ TokenInfo SimpleParser::GetNextToken( ParserMessageList &rErrorList )
else else
{ {
aLastToken = GetNextTokenString( rErrorList, nTokenStartPos ); aLastToken = GetNextTokenString( rErrorList, nTokenStartPos );
if ( aLastToken.Len() == 0 ) if ( aLastToken.isEmpty() )
return TokenInfo( TAG_NOMORETAGS, TOK_INVALIDPOS ); return TokenInfo( TAG_NOMORETAGS, TOK_INVALIDPOS );
// do we have a \< ... \> style tag? // do we have a \< ... \> style tag?
if ( aLastToken.Copy(0,2).EqualsAscii( "\\<" ) ) if (aLastToken.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("\\<")))
{ {
// check for paired \" \" // check for paired \" \"
bool bEven = true; bool bEven = true;
sal_uInt16 nQuotePos = 0; sal_Int32 nQuotePos = 0;
sal_uInt16 nQuotedQuotesPos = aLastToken.SearchAscii( "\\\"" ); sal_Int32 nQuotedQuotesPos =
sal_uInt16 nQuotedBackPos = aLastToken.SearchAscii( "\\\\" ); // this is only to kick out quoted backslashes aLastToken.indexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("\\\""));
while ( nQuotedQuotesPos != STRING_NOTFOUND ) sal_Int32 nQuotedBackPos = aLastToken.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\\\"));
// this is only to kick out quoted backslashes
while (nQuotedQuotesPos != -1)
{ {
if ( nQuotedBackPos <= nQuotedQuotesPos ) if ( nQuotedBackPos <= nQuotedQuotesPos )
nQuotePos = nQuotedBackPos+2; nQuotePos = nQuotedBackPos+2;
@@ -703,8 +709,11 @@ TokenInfo SimpleParser::GetNextToken( ParserMessageList &rErrorList )
nQuotePos = nQuotedQuotesPos+2; nQuotePos = nQuotedQuotesPos+2;
bEven = !bEven; bEven = !bEven;
} }
nQuotedQuotesPos = aLastToken.SearchAscii( "\\\"", nQuotePos ); nQuotedQuotesPos = aLastToken.indexOfAsciiL(
nQuotedBackPos = aLastToken.SearchAscii( "\\\\", nQuotePos ); // this is only to kick out quoted backslashes RTL_CONSTASCII_STRINGPARAM("\\\""), nQuotePos);
nQuotedBackPos = aLastToken.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\\\"), nQuotePos);
// this is only to kick out quoted backslashes
} }
if ( !bEven ) if ( !bEven )
{ {
@@ -712,19 +721,18 @@ TokenInfo SimpleParser::GetNextToken( ParserMessageList &rErrorList )
} }
// check if we have an end-tag or a start-tag // check if we have an end-tag or a start-tag
sal_uInt16 nNonBlankStartPos,nNonBlankEndPos; sal_Int32 nNonBlankStartPos = 2;
nNonBlankStartPos = 2; while (aLastToken[nNonBlankStartPos] == ' ')
while ( aLastToken.GetChar(nNonBlankStartPos) == ' ' )
nNonBlankStartPos++; nNonBlankStartPos++;
if ( aLastToken.GetChar(nNonBlankStartPos) == '/' ) if (aLastToken[nNonBlankStartPos] == '/')
aResult = TokenInfo( TAG_COMMONEND, nTokenStartPos, aLastToken, rErrorList ); aResult = TokenInfo( TAG_COMMONEND, nTokenStartPos, aLastToken, rErrorList );
else else
{ {
aResult = TokenInfo( TAG_COMMONSTART, nTokenStartPos, aLastToken, rErrorList ); aResult = TokenInfo( TAG_COMMONSTART, nTokenStartPos, aLastToken, rErrorList );
nNonBlankEndPos = aLastToken.Len() -3; sal_Int32 nNonBlankEndPos = aLastToken.getLength() - 3;
while ( aLastToken.GetChar(nNonBlankEndPos) == ' ' ) while (aLastToken[nNonBlankEndPos] == ' ')
nNonBlankEndPos--; nNonBlankEndPos--;
if ( aLastToken.GetChar( nNonBlankEndPos ) == '/' ) if (aLastToken[nNonBlankEndPos] == '/')
aNextTag = TokenInfo( TAG_COMMONEND, nTokenStartPos, String::CreateFromAscii("\\</").Append(aResult.GetTagName()).AppendAscii("\\>"), rErrorList ); aNextTag = TokenInfo( TAG_COMMONEND, nTokenStartPos, String::CreateFromAscii("\\</").Append(aResult.GetTagName()).AppendAscii("\\>"), rErrorList );
} }
} }
@@ -744,15 +752,19 @@ TokenInfo SimpleParser::GetNextToken( ParserMessageList &rErrorList )
return aResult; return aResult;
} }
String SimpleParser::GetNextTokenString( ParserMessageList &rErrorList, sal_uInt16 &rTagStartPos ) rtl::OUString SimpleParser::GetNextTokenString( ParserMessageList &rErrorList, sal_uInt16 &rTagStartPos )
{ {
sal_uInt16 nStyle2StartPos = aSource.SearchAscii( "$[", nPos ); sal_Int32 nStyle2StartPos = aSource.indexOfAsciiL(
sal_uInt16 nStyle3StartPos = aSource.SearchAscii( "\\<", nPos ); RTL_CONSTASCII_STRINGPARAM("$["), nPos );
sal_uInt16 nStyle4StartPos = aSource.SearchAscii( "\\\\", nPos ); // this is only to kick out quoted backslashes sal_Int32 nStyle3StartPos = aSource.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\<"), nPos);
sal_Int32 nStyle4StartPos = aSource.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\\\"), nPos);
// this is only to kick out quoted backslashes
rTagStartPos = 0; rTagStartPos = 0;
if ( STRING_NOTFOUND == nStyle2StartPos && STRING_NOTFOUND == nStyle3StartPos ) if (nStyle2StartPos == -1 && nStyle3StartPos == -1)
return String(); // no more tokens return String(); // no more tokens
if ( nStyle4StartPos < nStyle2StartPos && nStyle4StartPos <= nStyle3StartPos ) // <= to make sure \\ is always handled first if ( nStyle4StartPos < nStyle2StartPos && nStyle4StartPos <= nStyle3StartPos ) // <= to make sure \\ is always handled first
@@ -763,42 +775,48 @@ String SimpleParser::GetNextTokenString( ParserMessageList &rErrorList, sal_uInt
if ( nStyle2StartPos < nStyle3StartPos ) if ( nStyle2StartPos < nStyle3StartPos )
{ // test for $[ ... ] style tokens { // test for $[ ... ] style tokens
sal_uInt16 nEndPos = aSource.SearchAscii( "]", nStyle2StartPos); sal_Int32 nEndPos = aSource.indexOf(']', nStyle2StartPos);
if ( nEndPos == STRING_NOTFOUND ) if (nEndPos == -1)
{ // Token is incomplete. Skip start and search for better ones { // Token is incomplete. Skip start and search for better ones
nPos = nStyle2StartPos +2; nPos = nStyle2StartPos +2;
return GetNextTokenString( rErrorList, rTagStartPos ); return GetNextTokenString( rErrorList, rTagStartPos );
} }
nPos = nEndPos; nPos = nEndPos;
rTagStartPos = nStyle2StartPos; rTagStartPos = nStyle2StartPos;
return aSource.Copy( nStyle2StartPos, nEndPos-nStyle2StartPos +1 ); return aSource.copy(nStyle2StartPos, nEndPos - nStyle2StartPos + 1);
} }
else else
{ // test for \< ... \> style tokens { // test for \< ... \> style tokens
sal_uInt16 nEndPos = aSource.SearchAscii( "\\>", nStyle3StartPos); sal_Int32 nEndPos = aSource.indexOfAsciiL(
sal_uInt16 nQuotedBackPos = aSource.SearchAscii( "\\\\", nStyle3StartPos ); // this is only to kick out quoted backslashes RTL_CONSTASCII_STRINGPARAM("\\>"), nStyle3StartPos);
while ( nQuotedBackPos <= nEndPos && nQuotedBackPos != STRING_NOTFOUND ) sal_Int32 nQuotedBackPos = aSource.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\\\"), nStyle3StartPos);
// this is only to kick out quoted backslashes
while (nQuotedBackPos <= nEndPos && nQuotedBackPos != -1)
{ {
nEndPos = aSource.SearchAscii( "\\>", nQuotedBackPos +2); nEndPos = aSource.indexOfAsciiL(
nQuotedBackPos = aSource.SearchAscii( "\\\\", nQuotedBackPos +2 ); // this is only to kick out quoted backslashes RTL_CONSTASCII_STRINGPARAM("\\>"), nQuotedBackPos + 2);
nQuotedBackPos = aSource.indexOfAsciiL(
RTL_CONSTASCII_STRINGPARAM("\\\\"), nQuotedBackPos + 2);
// this is only to kick out quoted backslashes
} }
if ( nEndPos == STRING_NOTFOUND ) if (nEndPos == -1)
{ // Token is incomplete. Skip start and search for better ones { // Token is incomplete. Skip start and search for better ones
nPos = nStyle3StartPos +2; nPos = nStyle3StartPos +2;
rErrorList.AddError( 24, "Tag Start '\\<' without Tag End '\\>'", TokenInfo( TAG_UNKNOWN_TAG, nStyle3StartPos, aSource.Copy( nStyle3StartPos-10, 20 ) ) ); rErrorList.AddError( 24, "Tag Start '\\<' without Tag End '\\>'", TokenInfo( TAG_UNKNOWN_TAG, nStyle3StartPos, aSource.copy(nStyle3StartPos - 10, 20) ) );
return GetNextTokenString( rErrorList, rTagStartPos ); return GetNextTokenString( rErrorList, rTagStartPos );
} }
// check for paired quoted " --> \"sometext\" // check for paired quoted " --> \"sometext\"
nPos = nEndPos; nPos = nEndPos;
rTagStartPos = nStyle3StartPos; rTagStartPos = nStyle3StartPos;
return aSource.Copy( nStyle3StartPos, nEndPos-nStyle3StartPos +2 ); return aSource.copy(nStyle3StartPos, nEndPos-nStyle3StartPos + 2);
} }
} }
String SimpleParser::GetLexem( TokenInfo const &aToken ) rtl::OUString SimpleParser::GetLexem( TokenInfo const &aToken )
{ {
if ( aToken.aTokenString.Len() ) if ( !aToken.aTokenString.isEmpty() )
return aToken.aTokenString; return aToken.aTokenString;
else else
{ {
@@ -815,7 +833,7 @@ TokenParser::TokenParser()
: pErrorList( NULL ) : pErrorList( NULL )
{} {}
void TokenParser::Parse( const String &aCode, ParserMessageList* pList ) void TokenParser::Parse( const rtl::OUString &aCode, ParserMessageList* pList )
{ {
pErrorList = pList; pErrorList = pList;
@@ -1300,7 +1318,7 @@ sal_Bool TokenParser::match( const TokenInfo &aCurrentToken, const TokenInfo &rE
if ( aCurrentToken.nId == aExpectedToken.nId ) if ( aCurrentToken.nId == aExpectedToken.nId )
{ {
if ( ( aCurrentToken.nId == TAG_COMMONEND if ( ( aCurrentToken.nId == TAG_COMMONEND
&& aCurrentToken.GetTagName().Equals( aExpectedToken.GetTagName() ) ) && aCurrentToken.GetTagName() == aExpectedToken.GetTagName() )
|| aCurrentToken.nId != TAG_COMMONEND ) || aCurrentToken.nId != TAG_COMMONEND )
{ {
aTag = aParser.GetNextToken( *pErrorList ); aTag = aParser.GetNextToken( *pErrorList );
@@ -1310,7 +1328,9 @@ sal_Bool TokenParser::match( const TokenInfo &aCurrentToken, const TokenInfo &rE
if ( aExpectedToken.nId == TAG_COMMONEND ) if ( aExpectedToken.nId == TAG_COMMONEND )
{ {
aExpectedToken.aTokenString.Insert( String::CreateFromAscii( "Close tag for " ), 0 ); aExpectedToken.aTokenString =
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Close tag for "))
+ aExpectedToken.aTokenString;
} }
rtl::OString sTmp(RTL_CONSTASCII_STRINGPARAM("Expected Symbol")); rtl::OString sTmp(RTL_CONSTASCII_STRINGPARAM("Expected Symbol"));
@@ -1537,7 +1557,7 @@ void LingTest::CheckTestee( GSILine *aTestee, sal_Bool bHasSourceLine, sal_Bool
if ( aTesteeTokens[ --i ].HasBeenFixed() ) if ( aTesteeTokens[ --i ].HasBeenFixed() )
{ {
bFixesDone = sal_True; bFixesDone = sal_True;
aFixedTestee.Replace( aTesteeTokens[ i ].nPos, aTesteeTokens[ i ].aTokenString.Len(), aTesteeTokens[ i ].MakeTag() ); aFixedTestee = aFixedTestee.replaceAt( aTesteeTokens[ i ].nPos, aTesteeTokens[ i ].aTokenString.getLength(), aTesteeTokens[ i ].MakeTag() );
} }
} }
if ( bFixesDone ) if ( bFixesDone )

View File

@@ -287,7 +287,7 @@ sal_Bool XMLFile::Write( rtl::OString const &aFilename )
exit( -1 ); exit( -1 );
} }
void XMLFile::WriteString( ofstream &rStream, const String &sString ) void XMLFile::WriteString( ofstream &rStream, const rtl::OUString &sString )
{ {
rtl::OString sText(rtl::OUStringToOString(sString, RTL_TEXTENCODING_UTF8)); rtl::OString sText(rtl::OUStringToOString(sString, RTL_TEXTENCODING_UTF8));
rStream << sText.getStr(); rStream << sText.getStr();
@@ -312,7 +312,7 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
if ( pElement->GetAttributeList()) if ( pElement->GetAttributeList())
for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ) { for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ) {
rStream << " "; rStream << " ";
String sData( (*pElement->GetAttributeList())[ j ]->GetName() ); rtl::OUString sData( (*pElement->GetAttributeList())[ j ]->GetName() );
XMLUtil::QuotHTML( sData ); XMLUtil::QuotHTML( sData );
WriteString( rStream , sData ); WriteString( rStream , sData );
rStream << "=\""; rStream << "=\"";
@@ -335,7 +335,7 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
break; break;
case XML_NODE_TYPE_DATA: { case XML_NODE_TYPE_DATA: {
XMLData *pData = ( XMLData * ) pCur; XMLData *pData = ( XMLData * ) pCur;
String sData( pData->GetData()); rtl::OUString sData( pData->GetData());
XMLUtil::QuotHTML( sData ); XMLUtil::QuotHTML( sData );
WriteString( rStream, sData ); WriteString( rStream, sData );
} }
@@ -745,7 +745,7 @@ XMLElement& XMLElement::operator=(const XMLElement& obj){
} }
/*****************************************************************************/ /*****************************************************************************/
void XMLElement::AddAttribute( const String &rAttribute, const String &rValue ) void XMLElement::AddAttribute( const rtl::OUString &rAttribute, const rtl::OUString &rValue )
/*****************************************************************************/ /*****************************************************************************/
{ {
if ( !pAttributes ) if ( !pAttributes )
@@ -754,7 +754,7 @@ void XMLElement::AddAttribute( const String &rAttribute, const String &rValue )
} }
/*****************************************************************************/ /*****************************************************************************/
void XMLElement::ChangeLanguageTag( const String &rValue ) void XMLElement::ChangeLanguageTag( const rtl::OUString &rValue )
{ {
SetLanguageId(rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8)); SetLanguageId(rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8));
if ( pAttributes ) if ( pAttributes )
@@ -842,8 +842,6 @@ OUString XMLElement::ToOUString(){
/*****************************************************************************/ /*****************************************************************************/
void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement ){ void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement ){
/*****************************************************************************/ /*****************************************************************************/
//YD FIXME somewhere COMMENT is defined as 4!
static const String _COMMENT = String::CreateFromAscii("comment");
static const OUString XML_LANG ( RTL_CONSTASCII_USTRINGPARAM("xml-lang") ); static const OUString XML_LANG ( RTL_CONSTASCII_USTRINGPARAM("xml-lang") );
if(pCur!=NULL){ if(pCur!=NULL){
@@ -865,7 +863,7 @@ void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement
case XML_NODE_TYPE_ELEMENT: { case XML_NODE_TYPE_ELEMENT: {
XMLElement *pElement = ( XMLElement * ) pCur; XMLElement *pElement = ( XMLElement * ) pCur;
if( !pElement->GetName().EqualsIgnoreCaseAscii( _COMMENT ) ){ if( !pElement->GetName().equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("comment")) ){
buffer.append( OUString(RTL_CONSTASCII_USTRINGPARAM("\\<")) ); buffer.append( OUString(RTL_CONSTASCII_USTRINGPARAM("\\<")) );
buffer.append( pElement->GetName() ); buffer.append( pElement->GetName() );
if ( pElement->GetAttributeList()){ if ( pElement->GetAttributeList()){
@@ -946,7 +944,7 @@ XMLData& XMLData::operator=(const XMLData& obj){
return *this; return *this;
} }
/*****************************************************************************/ /*****************************************************************************/
void XMLData::AddData( const String &rData) { void XMLData::AddData( const rtl::OUString &rData) {
/*****************************************************************************/ /*****************************************************************************/
sData += rData; sData += rData;
} }
@@ -1118,11 +1116,11 @@ void SimpleXMLParser::CharacterData(
/*****************************************************************************/ /*****************************************************************************/
{ {
if ( !pCurData ){ if ( !pCurData ){
String x=String( XML_CHAR_N_TO_OUSTRING( s, len )); rtl::OUString x = XML_CHAR_N_TO_OUSTRING( s, len );
XMLUtil::UnQuotHTML(x); XMLUtil::UnQuotHTML(x);
pCurData = new XMLData( x , pCurNode ); pCurData = new XMLData( x , pCurNode );
}else{ }else{
String x=String( XML_CHAR_N_TO_OUSTRING( s, len )); rtl::OUString x = XML_CHAR_N_TO_OUSTRING( s, len );
XMLUtil::UnQuotHTML(x); XMLUtil::UnQuotHTML(x);
pCurData->AddData( x ); pCurData->AddData( x );
@@ -1149,10 +1147,9 @@ void SimpleXMLParser::Default(
} }
/*****************************************************************************/ /*****************************************************************************/
XMLFile *SimpleXMLParser::Execute( const String &rFullFileName , const String &rFileName, XMLFile* pXMLFileIn ) XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFullFileName , const rtl::OUString &rFileName, XMLFile* pXMLFileIn )
/*****************************************************************************/ /*****************************************************************************/
{ {
// printf("DBG: SimpleXMLParser::Execute( %s )", ByteString( rFileName , RTL_TEXTENCODING_ASCII_US ).GetBuffer() );
aErrorInformation.eCode = XML_ERROR_NONE; aErrorInformation.eCode = XML_ERROR_NONE;
aErrorInformation.nLine = 0; aErrorInformation.nLine = 0;
aErrorInformation.nColumn = 0; aErrorInformation.nColumn = 0;
@@ -1193,7 +1190,7 @@ XMLFile *SimpleXMLParser::Execute( SvMemoryStream *pStream )
aErrorInformation.eCode = XML_ERROR_NONE; aErrorInformation.eCode = XML_ERROR_NONE;
aErrorInformation.nLine = 0; aErrorInformation.nLine = 0;
aErrorInformation.nColumn = 0; aErrorInformation.nColumn = 0;
if ( pXMLFile->GetName().Len()) { if ( !pXMLFile->GetName().isEmpty()) {
aErrorInformation.sMessage = String::CreateFromAscii( "File " ); aErrorInformation.sMessage = String::CreateFromAscii( "File " );
aErrorInformation.sMessage += pXMLFile->GetName(); aErrorInformation.sMessage += pXMLFile->GetName();
aErrorInformation.sMessage += String::CreateFromAscii( " parsed successfully" ); aErrorInformation.sMessage += String::CreateFromAscii( " parsed successfully" );
@@ -1209,7 +1206,7 @@ XMLFile *SimpleXMLParser::Execute( SvMemoryStream *pStream )
aErrorInformation.nColumn = XML_GetErrorColumnNumber( aParser ); aErrorInformation.nColumn = XML_GetErrorColumnNumber( aParser );
aErrorInformation.sMessage = String::CreateFromAscii( "ERROR: " ); aErrorInformation.sMessage = String::CreateFromAscii( "ERROR: " );
if ( pXMLFile->GetName().Len()) if ( !pXMLFile->GetName().isEmpty())
aErrorInformation.sMessage += pXMLFile->GetName(); aErrorInformation.sMessage += pXMLFile->GetName();
else else
aErrorInformation.sMessage += String::CreateFromAscii( "XML-File" ); aErrorInformation.sMessage += String::CreateFromAscii( "XML-File" );
@@ -1256,108 +1253,79 @@ XMLFile *SimpleXMLParser::Execute( SvMemoryStream *pStream )
} }
/*****************************************************************************/ /*****************************************************************************/
void XMLUtil::QuotHTML( String &rString ) void XMLUtil::QuotHTML( rtl::OUString &rString )
/*****************************************************************************/ /*****************************************************************************/
{ {
OUStringBuffer sReturn; OUStringBuffer sReturn;
static const String LT(String::CreateFromAscii("<")); for (sal_Int32 i = 0; i < rString.getLength(); ++i) {
static const String QLT(String::CreateFromAscii("&lt;")); switch (rString[i]) {
static const String GT(String::CreateFromAscii(">")); case '\\':
static const String QGT(String::CreateFromAscii("&gt;")); if (i < rString.getLength()) {
static const String QUOT(String::CreateFromAscii("\\")); switch (rString[i + 1]) {
static const String QQUOT(String::CreateFromAscii("&quot;")); case '"':
static const String APOS(String::CreateFromAscii("\""));
static const String QAPOS(String::CreateFromAscii("&apos;"));
static const String AMP(String::CreateFromAscii("&"));
static const String QAMP(String::CreateFromAscii("&amp;"));
static const String SLASH(String::CreateFromAscii("\\"));
for ( sal_uInt16 i = 0; i < rString.Len(); i++) {
if ( i < rString.Len()) {
switch ( rString.GetChar( i )) {
case '\\': if( i+1 <= rString.Len() ){
switch( rString.GetChar( i+1 ) ){
case '<': sReturn.append( LT );i++;break;
case '>': sReturn.append( GT );i++;break;
case '\\': sReturn.append( QUOT );i++;break;
case '\"': sReturn.append( APOS );i++;break;
default: sReturn.append( SLASH );break;
}
}
break;
case '<': case '<':
sReturn.append( QLT );
break;
case '>': case '>':
sReturn.append( QGT ); case '\\':
++i;
break; break;
}
case '\"':
sReturn.append( QQUOT );
break;
case '&':
if (
( ( i + 4 ) < rString.Len()) &&
( String( rString.Copy( i, 5 ) ).Equals( QAMP ) )
)
sReturn.append( rString.GetChar( i ) );
else
sReturn.append( QAMP );
break;
default:
sReturn.append( rString.GetChar( i ) );
break;
} }
// fall through
default:
sReturn.append(rString[i]);
break;
case '<':
sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&lt;"));
break;
case '>':
sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&gt;"));
break;
case '"':
sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&quot;"));
break;
case '&':
if (rString.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("&amp;"), i))
sReturn.append('&');
else
sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&amp;"));
break;
} }
} }
rString = String( sReturn.makeStringAndClear() ); rString = sReturn.makeStringAndClear();
} }
void XMLUtil::UnQuotHTML( String &rString ){ void XMLUtil::UnQuotHTML( rtl::OUString &rString ){
UnQuotData( rString );
}
void XMLUtil::UnQuotData( String &rString_in )
{
rtl::OStringBuffer sReturn; rtl::OStringBuffer sReturn;
ByteString sString(rtl::OUStringToOString(rString_in , RTL_TEXTENCODING_UTF8)); rtl::OString sString(rtl::OUStringToOString(rString, RTL_TEXTENCODING_UTF8));
while (sString.Len()) for (sal_Int32 i = 0; i != sString.getLength();) {
{ if (sString[i] == '\\') {
if ( sString.Copy( 0, 1 ) == "\\" ) { sReturn.append(RTL_CONSTASCII_STRINGPARAM("\\\\"));
sReturn.append("\\\\"); ++i;
sString.Erase( 0, 1 ); } else if (sString.match("&amp;", i)) {
}
else if ( sString.Copy( 0, 5 ) == "&amp;" ) {
sReturn.append('&'); sReturn.append('&');
sString.Erase( 0, 5 ); i += RTL_CONSTASCII_LENGTH("&amp;");
} } else if (sString.match("&lt;", i)) {
else if ( sString.Copy( 0, 4 ) == "&lt;" ) {
sReturn.append('<'); sReturn.append('<');
sString.Erase( 0, 4 ); i += RTL_CONSTASCII_LENGTH("&lt;");
} } else if (sString.match("&gt;", i)) {
else if ( sString.Copy( 0, 4 ) == "&gt;" ) {
sReturn.append('>'); sReturn.append('>');
sString.Erase( 0, 4 ); i += RTL_CONSTASCII_LENGTH("&gt;");
} } else if (sString.match("&quot;", i)) {
else if ( sString.Copy( 0, 6 ) == "&quot;" ) { sReturn.append('"');
sReturn.append('\"'); i += RTL_CONSTASCII_LENGTH("&quot;");
sString.Erase( 0, 6 ); } else if (sString.match("&apos;", i)) {
}
else if ( sString.Copy( 0, 6 ) == "&apos;" ) {
sReturn.append('\''); sReturn.append('\'');
sString.Erase( 0, 6 ); i += RTL_CONSTASCII_LENGTH("&apos;");
} } else {
else { sReturn.append(sString[i]);
sReturn.append(sString.GetChar(0)); ++i;
sString.Erase( 0, 1 );
} }
} }
rString_in = rtl::OStringToOUString(sReturn.makeStringAndClear(), RTL_TEXTENCODING_UTF8); rString = rtl::OStringToOUString(sReturn.makeStringAndClear(), RTL_TEXTENCODING_UTF8);
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -33,6 +33,7 @@
// local includes // local includes
#include "export.hxx" #include "export.hxx"
#include "helper.hxx"
#include "xrmmerge.hxx" #include "xrmmerge.hxx"
#include "tokens.h" #include "tokens.h"
#include <iostream> #include <iostream>
@@ -302,7 +303,7 @@ int XRMResParser::Execute( int nToken, char * pToken )
switch ( nToken ) { switch ( nToken ) {
case XRM_TEXT_START:{ case XRM_TEXT_START:{
ByteString sNewLID = GetAttribute( rToken, "id" ); rtl::OString sNewLID = GetAttribute( rToken, "id" );
if ( sNewLID != sLID ) { if ( sNewLID != sLID ) {
sLID = sNewLID; sLID = sNewLID;
} }
@@ -404,7 +405,7 @@ int XRMResParser::Execute( int nToken, char * pToken )
} }
/*****************************************************************************/ /*****************************************************************************/
ByteString XRMResParser::GetAttribute( const ByteString &rToken, const ByteString &rAttribute ) rtl::OString XRMResParser::GetAttribute( const rtl::OString &rToken, const rtl::OString &rAttribute )
/*****************************************************************************/ /*****************************************************************************/
{ {
ByteString sTmp( rToken ); ByteString sTmp( rToken );
@@ -426,17 +427,17 @@ ByteString XRMResParser::GetAttribute( const ByteString &rToken, const ByteStrin
/*****************************************************************************/ /*****************************************************************************/
void XRMResParser::Error( const ByteString &rError ) void XRMResParser::Error( const rtl::OString &rError )
/*****************************************************************************/ /*****************************************************************************/
{ {
yyerror(( char * ) rError.GetBuffer()); yyerror(( char * ) rError.getStr());
} }
/*****************************************************************************/ /*****************************************************************************/
void XRMResParser::ConvertStringToDBFormat( ByteString &rString ) void XRMResParser::ConvertStringToDBFormat( rtl::OString &rString )
/*****************************************************************************/ /*****************************************************************************/
{ {
ByteString sResult; rtl::OString sResult;
do { do {
sResult = rString; sResult = rString;
rString = comphelper::string::stripStart(rString, _LF); rString = comphelper::string::stripStart(rString, _LF);
@@ -444,14 +445,14 @@ void XRMResParser::ConvertStringToDBFormat( ByteString &rString )
rString = comphelper::string::stripEnd(rString, '\t'); rString = comphelper::string::stripEnd(rString, '\t');
} while ( sResult != rString ); } while ( sResult != rString );
rString.SearchAndReplaceAll( "\t", "\\t" ); helper::searchAndReplaceAll(&rString, "\t", "\\t");
} }
/*****************************************************************************/ /*****************************************************************************/
void XRMResParser::ConvertStringToXMLFormat( ByteString &rString ) void XRMResParser::ConvertStringToXMLFormat( rtl::OString &rString )
/*****************************************************************************/ /*****************************************************************************/
{ {
rString.SearchAndReplaceAll( "\\t", "\t" ); helper::searchAndReplaceAll(&rString, "\\t", "\t");
} }
@@ -461,7 +462,7 @@ void XRMResParser::ConvertStringToXMLFormat( ByteString &rString )
// //
/*****************************************************************************/ /*****************************************************************************/
XRMResOutputParser::XRMResOutputParser ( const ByteString &rOutputFile ) XRMResOutputParser::XRMResOutputParser ( const rtl::OString &rOutputFile )
/*****************************************************************************/ /*****************************************************************************/
{ {
aLanguages = Export::GetLanguages(); aLanguages = Export::GetLanguages();
@@ -496,8 +497,8 @@ XRMResOutputParser::~XRMResOutputParser()
/*****************************************************************************/ /*****************************************************************************/
XRMResExport::XRMResExport( XRMResExport::XRMResExport(
const ByteString &rOutputFile, const ByteString &rProject, const rtl::OString &rOutputFile, const rtl::OString &rProject,
const ByteString &rFilePath ) const rtl::OString &rFilePath )
/*****************************************************************************/ /*****************************************************************************/
: XRMResOutputParser( rOutputFile ), : XRMResOutputParser( rOutputFile ),
pResData( NULL ), pResData( NULL ),
@@ -514,16 +515,12 @@ XRMResExport::~XRMResExport()
delete pResData; delete pResData;
} }
void XRMResExport::Output( const ByteString& rOutput ) void XRMResExport::Output( const rtl::OString& ) {}
{
// Dummy to suppress warnings caused by poor class design
(void) rOutput;
}
/*****************************************************************************/ /*****************************************************************************/
void XRMResExport::WorkOnDesc( void XRMResExport::WorkOnDesc(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
@@ -543,7 +540,7 @@ void XRMResExport::WorkOnDesc(
file.close(); file.close();
memblock[size] = '\0'; memblock[size] = '\0';
rText = ByteString(memblock); rText = ByteString(memblock);
rText.SearchAndReplaceAll( "\n", "\\n" ); helper::searchAndReplaceAll(&rText, "\n", "\\n");
delete[] memblock; delete[] memblock;
} }
WorkOnText( rOpenTag, rText ); WorkOnText( rOpenTag, rText );
@@ -552,8 +549,8 @@ void XRMResExport::WorkOnDesc(
//*****************************************************************************/ //*****************************************************************************/
void XRMResExport::WorkOnText( void XRMResExport::WorkOnText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
@@ -566,22 +563,18 @@ void XRMResExport::WorkOnText(
pResData->sId = GetLID(); pResData->sId = GetLID();
} }
ByteString sText(rText); rtl::OString sText(rText);
ConvertStringToDBFormat(sText); ConvertStringToDBFormat(sText);
pResData->sText[sLang] = sText; pResData->sText[sLang] = sText;
} }
/*****************************************************************************/ /*****************************************************************************/
void XRMResExport::EndOfText( void XRMResExport::EndOfText(
const ByteString &rOpenTag, const rtl::OString &,
const ByteString &rCloseTag const rtl::OString &
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
(void) rOpenTag; // FIXME
(void) rCloseTag; // FIXME
if ( pResData && pOutputStream ) if ( pResData && pOutputStream )
{ {
ByteString sTimeStamp( Export::GetTimeStamp()); ByteString sTimeStamp( Export::GetTimeStamp());
@@ -627,15 +620,15 @@ void XRMResExport::EndOfText(
/*****************************************************************************/ /*****************************************************************************/
XRMResMerge::XRMResMerge( XRMResMerge::XRMResMerge(
const ByteString &rMergeSource, const ByteString &rOutputFile, const rtl::OString &rMergeSource, const rtl::OString &rOutputFile,
ByteString &rFilename) const rtl::OString &rFilename)
/*****************************************************************************/ /*****************************************************************************/
: XRMResOutputParser( rOutputFile ), : XRMResOutputParser( rOutputFile ),
pMergeDataFile( NULL ), pMergeDataFile( NULL ),
sFilename( rFilename ) , sFilename( rFilename ) ,
pResData( NULL ) pResData( NULL )
{ {
if ( rMergeSource.Len()) if (!rMergeSource.isEmpty())
pMergeDataFile = new MergeDataFile( pMergeDataFile = new MergeDataFile(
rMergeSource, sInputFileName, bErrorLog); rMergeSource, sInputFileName, bErrorLog);
if( Export::sLanguages.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("ALL"))) if( Export::sLanguages.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("ALL")))
@@ -657,8 +650,8 @@ XRMResMerge::~XRMResMerge()
/*****************************************************************************/ /*****************************************************************************/
void XRMResMerge::WorkOnDesc( void XRMResMerge::WorkOnDesc(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
@@ -721,8 +714,8 @@ void XRMResMerge::WorkOnDesc(
/*****************************************************************************/ /*****************************************************************************/
void XRMResMerge::WorkOnText( void XRMResMerge::WorkOnText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
ByteString &rText rtl::OString &rText
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
@@ -753,18 +746,18 @@ void XRMResMerge::WorkOnText(
} }
/*****************************************************************************/ /*****************************************************************************/
void XRMResMerge::Output( const ByteString& rOutput ) void XRMResMerge::Output( const rtl::OString& rOutput )
/*****************************************************************************/ /*****************************************************************************/
{ {
//printf("W: %s\n",rOutput.GetBuffer()); //printf("W: %s\n",rOutput.GetBuffer());
if ( pOutputStream && rOutput.Len() > 0 ) if ( pOutputStream && !rOutput.isEmpty() )
pOutputStream->Write( rOutput.GetBuffer(), rOutput.Len()); pOutputStream->Write( rOutput.getStr(), rOutput.getLength());
} }
/*****************************************************************************/ /*****************************************************************************/
void XRMResMerge::EndOfText( void XRMResMerge::EndOfText(
const ByteString &rOpenTag, const rtl::OString &rOpenTag,
const ByteString &rCloseTag const rtl::OString &rCloseTag
) )
/*****************************************************************************/ /*****************************************************************************/
{ {