[PATCH] String=>OUString big chunk of paring related code
Norbert Thiebaud (via Code Review)
gerrit at gerrit.libreoffice.org
Thu Jun 13 06:19:33 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/4253
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/53/4253/1
String=>OUString big chunk of paring related code
Change-Id: I65d84991291fb2ade03132d424ed833a89bbc430
---
M dbaccess/source/ui/misc/RtfReader.cxx
M editeng/source/editeng/eehtml.cxx
M editeng/source/rtf/svxrtf.cxx
M include/editeng/svxrtf.hxx
M include/svtools/parhtml.hxx
M include/svtools/svparser.hxx
M sc/source/filter/html/htmlpars.cxx
M sfx2/source/bastyp/frmhtml.cxx
M sfx2/source/bastyp/sfxhtml.cxx
M sfx2/source/doc/objmisc.cxx
M svtools/source/svhtml/htmlsupp.cxx
M svtools/source/svhtml/parhtml.cxx
M svtools/source/svrtf/parrtf.cxx
M svtools/source/svrtf/svparser.cxx
M sw/source/filter/html/htmlbas.cxx
M sw/source/filter/html/htmlcss1.cxx
M sw/source/filter/html/htmldraw.cxx
M sw/source/filter/html/htmlfld.cxx
M sw/source/filter/html/htmlform.cxx
M sw/source/filter/html/htmlgrin.cxx
M sw/source/filter/html/htmlnum.cxx
M sw/source/filter/html/htmlplug.cxx
M sw/source/filter/html/htmlsect.cxx
M sw/source/filter/html/htmltab.cxx
M sw/source/filter/html/swhtml.cxx
M sw/source/filter/html/swhtml.hxx
26 files changed, 801 insertions(+), 727 deletions(-)
diff --git a/dbaccess/source/ui/misc/RtfReader.cxx b/dbaccess/source/ui/misc/RtfReader.cxx
index 8e85fbe..6dc16f3 100644
--- a/dbaccess/source/ui/misc/RtfReader.cxx
+++ b/dbaccess/source/ui/misc/RtfReader.cxx
@@ -128,14 +128,15 @@
{
switch(nTmpToken2)
{
- case RTF_RED: aColor.SetRed((sal_uInt8)nTokenValue); break;
- case RTF_BLUE: aColor.SetBlue((sal_uInt8)nTokenValue); break;
- case RTF_GREEN: aColor.SetGreen((sal_uInt8)nTokenValue); break;
- default: break;
+ case RTF_RED: aColor.SetRed((sal_uInt8)nTokenValue); break;
+ case RTF_BLUE: aColor.SetBlue((sal_uInt8)nTokenValue); break;
+ case RTF_GREEN: aColor.SetGreen((sal_uInt8)nTokenValue); break;
+ default: break;
}
nTmpToken2 = GetNextToken();
}
- while(aToken.GetChar(0) != ';' && eState != SVPAR_ERROR && eState != SVPAR_ACCEPTED);
+ while(aToken[0] != ';' && eState != SVPAR_ERROR && eState != SVPAR_ACCEPTED);
+
m_vecColor.push_back(aColor.GetRGBColor());
nTmpToken2 = GetNextToken();
}
diff --git a/editeng/source/editeng/eehtml.cxx b/editeng/source/editeng/eehtml.cxx
index 31b0e43..f78287a 100644
--- a/editeng/source/editeng/eehtml.cxx
+++ b/editeng/source/editeng/eehtml.cxx
@@ -174,7 +174,7 @@
}
break;
case HTML_RAWDATA:
- if (IsReadStyle() && aToken.Len())
+ if (IsReadStyle() && !aToken.isEmpty())
{
// Each token represents a single line.
maStyleSource.append(aToken);
@@ -715,17 +715,15 @@
const HTMLOption& aOption = aOptions[i];
switch( aOption.GetToken() )
{
- case HTML_O_ALIGN:
- {
- if ( aOption.GetString().CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_AL_right ) == COMPARE_EQUAL )
- eAdjust = SVX_ADJUST_RIGHT;
- else if ( aOption.GetString().CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_AL_middle ) == COMPARE_EQUAL )
- eAdjust = SVX_ADJUST_CENTER;
- else if ( aOption.GetString().CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_AL_center ) == COMPARE_EQUAL )
- eAdjust = SVX_ADJUST_CENTER;
- else
- eAdjust = SVX_ADJUST_LEFT;
- }
+ case HTML_O_ALIGN:
+ if ( aOption.GetString().startsWithIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_AL_right ))
+ eAdjust = SVX_ADJUST_RIGHT;
+ else if ( aOption.GetString().startsWithIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_AL_middle ))
+ eAdjust = SVX_ADJUST_CENTER;
+ else if ( aOption.GetString().startsWithIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_AL_center ))
+ eAdjust = SVX_ADJUST_CENTER;
+ else
+ eAdjust = SVX_ADJUST_LEFT;
break;
}
}
diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx
index 90bcd84..12a5489 100644
--- a/editeng/source/rtf/svxrtf.cxx
+++ b/editeng/source/rtf/svxrtf.cxx
@@ -425,9 +425,9 @@
case RTF_BLUE: nBlue = sal_uInt8(nTokenValue); break;
case RTF_TEXTTOKEN:
- if( 1 == aToken.Len()
- ? aToken.GetChar( 0 ) != ';'
- : STRING_NOTFOUND == aToken.Search( ';' ) )
+ if( 1 == aToken.getLength()
+ ? aToken[ 0 ] != ';'
+ : aToken.indexOf( ';' ) < 0 )
break; // At least the ';' must be found
// else no break !!
@@ -557,7 +557,7 @@
break;
case RTF_TEXTTOKEN:
DelCharAtEnd( aToken, ';' );
- if ( aToken.Len() )
+ if ( !aToken.isEmpty() )
{
if( bIsAltFntNm )
sAltNm = aToken;
@@ -795,14 +795,16 @@
}
}
-String& SvxRTFParser::DelCharAtEnd( String& rStr, const sal_Unicode cDel )
+OUString& SvxRTFParser::DelCharAtEnd( OUString& rStr, const sal_Unicode cDel )
{
- if( rStr.Len() && ' ' == rStr.GetChar( 0 ))
+ if( !rStr.isEmpty() && ' ' == rStr[ 0 ])
rStr = comphelper::string::stripStart(rStr, ' ');
- if( rStr.Len() && ' ' == rStr.GetChar( rStr.Len()-1 ))
+ if( !rStr.isEmpty() && ' ' == rStr[ rStr.getLength()-1 ])
rStr = comphelper::string::stripEnd(rStr, ' ');
- if( rStr.Len() && cDel == rStr.GetChar( rStr.Len()-1 ))
- rStr.Erase( rStr.Len()-1 );
+ if( !rStr.isEmpty() && cDel == rStr[ rStr.getLength()-1 ])
+ {
+ rStr = rStr.copy(0, rStr.getLength()-1 );
+ }
return rStr;
}
diff --git a/include/editeng/svxrtf.hxx b/include/editeng/svxrtf.hxx
index 56a1240..175a750 100644
--- a/include/editeng/svxrtf.hxx
+++ b/include/editeng/svxrtf.hxx
@@ -246,7 +246,7 @@
virtual void InsertPara() = 0;
- String& DelCharAtEnd( String& rStr, const sal_Unicode cDel );
+ OUString& DelCharAtEnd( OUString& rStr, const sal_Unicode cDel );
// is called for each token that is recognized in CallParser
virtual void NextToken( int nToken );
diff --git a/include/svtools/parhtml.hxx b/include/svtools/parhtml.hxx
index 7df1d76..5125160 100644
--- a/include/svtools/parhtml.hxx
+++ b/include/svtools/parhtml.hxx
@@ -87,20 +87,20 @@
class SVT_DLLPUBLIC HTMLOption
{
- String aValue; // der Wert der Option (immer als String)
- String aToken; // der Name der Option als String
+ OUString aValue; // der Wert der Option (immer als String)
+ OUString aToken; // der Name der Option als String
sal_uInt16 nToken; // und das entsprechende Token
public:
- HTMLOption( sal_uInt16 nTyp, const String& rToken, const String& rValue );
+ HTMLOption( sal_uInt16 nTyp, const OUString& rToken, const OUString& rValue );
// der Name der Option ...
sal_uInt16 GetToken() const { return nToken; } // ... als Enum
- const String& GetTokenString() const { return aToken; } // ... als String
+ const OUString& GetTokenString() const { return aToken; } // ... als String
// der Wert der Option ...
- const String& GetString() const { return aValue; } // ... als String
+ const OUString& GetString() const { return aValue; } // ... als String
sal_uInt32 GetNumber() const; // ... als Zahl
sal_Int32 GetSNumber() const; // ... als Zahl
@@ -146,10 +146,10 @@
int mnPendingOffToken; ///< OFF token pending for a <XX.../> ON/OFF ON token
- String aEndToken;
+ OUString aEndToken;
protected:
- String sSaveToken; // das gelesene Tag als String
+ OUString sSaveToken; // das gelesene Tag als String
int ScanText( const sal_Unicode cBreak = 0U );
@@ -208,7 +208,7 @@
// Lesen eines <SCRIPT> aufgerufen werden
void EndScanScript() { bReadScript = false; }
- void ReadRawData( const sal_Char *pEndToken ) { aEndToken.AssignAscii(pEndToken); }
+ void ReadRawData( const sal_Char *pEndToken ) { aEndToken = OUString(pEndToken, strlen(pEndToken), RTL_TEXTENCODING_ASCII_US); }
// Token ohne \-Sequenzen
void UnescapeToken();
@@ -224,7 +224,7 @@
protected:
- static rtl_TextEncoding GetEncodingByMIME( const String& rMime );
+ static rtl_TextEncoding GetEncodingByMIME( const OUString& rMime );
/// template method: called when ParseMetaOptions adds a user-defined meta
virtual void AddMetaUserDefined( OUString const & i_rMetaName );
@@ -252,15 +252,15 @@
bool bSwitchToUCS2 = false,
rtl_TextEncoding eEnc=RTL_TEXTENCODING_DONTKNOW );
- bool ParseScriptOptions( String& rLangString, const String&, HTMLScriptLanguage& rLang,
- String& rSrc, String& rLibrary, String& rModule );
+ bool ParseScriptOptions( OUString& rLangString, const OUString&, HTMLScriptLanguage& rLang,
+ OUString& rSrc, OUString& rLibrary, OUString& rModule );
// Einen Kommentar um den Inhalt von <SCRIPT> oder <STYLE> entfernen
// Bei 'bFull' wird ggf. die gesammte Zeile hinter einem "<!--"
// entfernt (fuer JavaSript)
- static void RemoveSGMLComment( String &rString, sal_Bool bFull );
+ static void RemoveSGMLComment( OUString &rString, sal_Bool bFull );
- static bool InternalImgToPrivateURL( String& rURL );
+ static bool InternalImgToPrivateURL( OUString& rURL );
static rtl_TextEncoding GetEncodingByHttpHeader( SvKeyValueIterator *pHTTPHeader );
bool SetEncodingByHTTPHeader( SvKeyValueIterator *pHTTPHeader );
};
diff --git a/include/svtools/svparser.hxx b/include/svtools/svparser.hxx
index bd2ee96..ad725f4 100644
--- a/include/svtools/svparser.hxx
+++ b/include/svtools/svparser.hxx
@@ -48,7 +48,7 @@
protected:
SvStream& rInput;
- String aToken; // gescanntes Token
+ OUString aToken; // gescanntes Token
sal_uLong nlLineNr; // akt. Zeilen Nummer
sal_uLong nlLinePos; // akt. Spalten Nummer
@@ -79,7 +79,7 @@
struct TokenStackType
{
- String sToken;
+ OUString sToken;
long nTokenValue;
sal_Bool bTokenHasValue;
int nTokenId;
@@ -207,8 +207,8 @@
{
/** Representation.
*/
- String m_aKey;
- String m_aValue;
+ OUString m_aKey;
+ OUString m_aValue;
public:
/** Construction.
@@ -216,7 +216,7 @@
SvKeyValue (void)
{}
- SvKeyValue (const String &rKey, const String &rValue)
+ SvKeyValue (const OUString &rKey, const OUString &rValue)
: m_aKey (rKey), m_aValue (rValue)
{}
@@ -235,11 +235,11 @@
/** Operation.
*/
- const String& GetKey (void) const { return m_aKey; }
- const String& GetValue (void) const { return m_aValue; }
+ const OUString& GetKey (void) const { return m_aKey; }
+ const OUString& GetValue (void) const { return m_aValue; }
- void SetKey (const String &rKey ) { m_aKey = rKey; }
- void SetValue (const String &rValue) { m_aValue = rValue; }
+ void SetKey (const OUString &rKey ) { m_aKey = rKey; }
+ void SetValue (const OUString &rValue) { m_aValue = rValue; }
};
/*========================================================================
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 584aaef..f605303 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -1007,12 +1007,12 @@
{
case HTML_O_COLSPAN:
{
- pActEntry->nColOverlap = ( SCCOL ) rOption.GetString().ToInt32();
+ pActEntry->nColOverlap = ( SCCOL ) rOption.GetString().toInt32();
}
break;
case HTML_O_ROWSPAN:
{
- pActEntry->nRowOverlap = ( SCROW ) rOption.GetString().ToInt32();
+ pActEntry->nRowOverlap = ( SCROW ) rOption.GetString().toInt32();
}
break;
case HTML_O_ALIGN:
@@ -1995,7 +1995,7 @@
switch( itr->GetToken() )
{
case HTML_O_BORDER:
- mbBorderOn = ((itr->GetString().Len() == 0) || (itr->GetNumber() != 0));
+ mbBorderOn = ((itr->GetString().getLength() == 0) || (itr->GetNumber() != 0));
break;
case HTML_O_ID:
maTableName = itr->GetString();
@@ -2221,10 +2221,10 @@
switch (itr->GetToken())
{
case HTML_O_COLSPAN:
- aSpanSize.mnCols = static_cast<SCCOL>( getLimitedValue<sal_Int32>( itr->GetString().ToInt32(), 1, 256 ) );
+ aSpanSize.mnCols = static_cast<SCCOL>( getLimitedValue<sal_Int32>( itr->GetString().toInt32(), 1, 256 ) );
break;
case HTML_O_ROWSPAN:
- aSpanSize.mnRows = static_cast<SCROW>( getLimitedValue<sal_Int32>( itr->GetString().ToInt32(), 1, 256 ) );
+ aSpanSize.mnRows = static_cast<SCROW>( getLimitedValue<sal_Int32>( itr->GetString().toInt32(), 1, 256 ) );
break;
case HTML_O_SDVAL:
pValStr.reset(new OUString(itr->GetString()));
diff --git a/sfx2/source/bastyp/frmhtml.cxx b/sfx2/source/bastyp/frmhtml.cxx
index a907782..3528b39 100644
--- a/sfx2/source/bastyp/frmhtml.cxx
+++ b/sfx2/source/bastyp/frmhtml.cxx
@@ -113,8 +113,7 @@
pFrame->SetResizable( sal_False );
break;
default:
- if ( aOption.GetTokenString().EqualsIgnoreCaseAscii(
- HTML_O_READONLY ) )
+ if ( aOption.GetTokenString().equalsIgnoreAsciiCase(HTML_O_READONLY ) )
{
String aStr = aOption.GetString();
sal_Bool bReadonly = sal_True;
@@ -122,7 +121,7 @@
bReadonly = sal_False;
pFrame->SetReadOnly( bReadonly );
}
- else if ( aOption.GetTokenString().EqualsIgnoreCaseAscii(
+ else if ( aOption.GetTokenString().equalsIgnoreAsciiCase(
HTML_O_EDIT ) )
{
String aStr = aOption.GetString();
diff --git a/sfx2/source/bastyp/sfxhtml.cxx b/sfx2/source/bastyp/sfxhtml.cxx
index bbbd5de..926ec07 100644
--- a/sfx2/source/bastyp/sfxhtml.cxx
+++ b/sfx2/source/bastyp/sfxhtml.cxx
@@ -274,10 +274,10 @@
for( sal_Bool bCont = pHTTPHeader->GetFirst( aKV ); bCont;
bCont = pHTTPHeader->GetNext( aKV ) )
{
- if( aKV.GetKey().EqualsIgnoreCaseAscii(
+ if( aKV.GetKey().equalsIgnoreAsciiCase(
OOO_STRING_SVTOOLS_HTML_META_content_script_type ) )
{
- if( aKV.GetValue().Len() )
+ if( !aKV.GetValue().isEmpty() )
{
String aTmp( aKV.GetValue() );
if( aTmp.EqualsIgnoreCaseAscii( sHTML_MIME_text, 0, 5 ) )
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 49fb3b2..528a6bf 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -1627,7 +1627,7 @@
void SfxHeaderAttributes_Impl::SetAttribute( const SvKeyValue& rKV )
{
String aValue = rKV.GetValue();
- if( rKV.GetKey().CompareIgnoreCaseToAscii( "refresh" ) == COMPARE_EQUAL && rKV.GetValue().Len() )
+ if( rKV.GetKey().startsWithIgnoreAsciiCase( "refresh" ) && !rKV.GetValue().isEmpty() )
{
sal_uInt32 nTime = aValue.GetToken( 0, ';' ).ToInt32() ;
String aURL = comphelper::string::strip(aValue.GetToken( 1, ';' ), ' ');
@@ -1649,7 +1649,7 @@
// ignore
}
}
- else if( rKV.GetKey().CompareIgnoreCaseToAscii( "expires" ) == COMPARE_EQUAL )
+ else if( rKV.GetKey().startsWithIgnoreAsciiCase( "expires" ))
{
DateTime aDateTime( DateTime::EMPTY );
if( INetRFC822Message::ParseDateField( rKV.GetValue(), aDateTime ) )
diff --git a/svtools/source/svhtml/htmlsupp.cxx b/svtools/source/svhtml/htmlsupp.cxx
index 3d90fec..688c975 100644
--- a/svtools/source/svhtml/htmlsupp.cxx
+++ b/svtools/source/svhtml/htmlsupp.cxx
@@ -36,19 +36,19 @@
{ 0, 0 }
};
-bool HTMLParser::ParseScriptOptions( String& rLangString, const String& rBaseURL,
+bool HTMLParser::ParseScriptOptions( OUString& rLangString, const OUString& rBaseURL,
HTMLScriptLanguage& rLang,
- String& rSrc,
- String& rLibrary,
- String& rModule )
+ OUString& rSrc,
+ OUString& rLibrary,
+ OUString& rModule )
{
const HTMLOptions& aScriptOptions = GetOptions();
- rLangString.Erase();
+ rLangString = "";
rLang = HTML_SL_JAVASCRIPT;
- rSrc.Erase();
- rLibrary.Erase();
- rModule.Erase();
+ rSrc = "";
+ rLibrary = "";
+ rModule = "";
for( size_t i = aScriptOptions.size(); i; )
{
@@ -82,71 +82,80 @@
return true;
}
-void HTMLParser::RemoveSGMLComment( String &rString, sal_Bool bFull )
+void HTMLParser::RemoveSGMLComment( OUString &rString, sal_Bool bFull )
{
sal_Unicode c = 0;
- while( rString.Len() &&
- ( ' '==(c=rString.GetChar(0)) || '\t'==c || '\r'==c || '\n'==c ) )
- rString.Erase( 0, 1 );
-
- while( rString.Len() &&
- ( ' '==(c=rString.GetChar( rString.Len()-1))
+ while( !rString.isEmpty() &&
+ ( ' '==(c=rString[0]) || '\t'==c || '\r'==c || '\n'==c ) )
+ {
+ rString = rString.copy(1);
+ }
+ while( !rString.isEmpty() &&
+ ( ' '==(c=rString[ rString.getLength()-1])
|| '\t'==c || '\r'==c || '\n'==c ) )
- rString.Erase( rString.Len()-1 );
-
+ {
+ rString = rString.copy(0, rString.getLength()-1 );
+ }
// remove SGML comments
- if( rString.Len() >= 4 &&
- rString.CompareToAscii( "<!--", 4 ) == COMPARE_EQUAL )
+ if( rString.getLength() >= 4 &&
+ rString.startsWith( "<!--"))
{
- xub_StrLen nPos = 3;
+ sal_Int32 nPos = 3;
if( bFull )
{
// the whole line
nPos = 4;
- while( nPos < rString.Len() &&
- ( ( c = rString.GetChar( nPos )) != '\r' && c != '\n' ) )
+ while( nPos < rString.getLength() &&
+ ( ( c = rString[ nPos ]) != '\r' && c != '\n' ) )
+ {
++nPos;
- if( c == '\r' && nPos+1 < rString.Len() &&
- '\n' == rString.GetChar( nPos+1 ))
+ }
+ if( c == '\r' && nPos+1 < rString.getLength() &&
+ '\n' == rString[ nPos+1 ])
+ {
++nPos;
+ }
else if( c != '\n' )
+ {
nPos = 3;
+ }
}
- rString.Erase( 0, ++nPos );
+ rString = rString.copy(++nPos);
}
- if( rString.Len() >=3 &&
- rString.Copy(rString.Len()-3).CompareToAscii("-->")
- == COMPARE_EQUAL )
+ if( rString.getLength() >=3 &&
+ rString.copy(rString.getLength()-3).startsWith("-->"))
{
- rString.Erase( rString.Len()-3 );
+ rString = rString.copy(0,rString.getLength()-3 );
if( bFull )
{
// "//" or "'", maybe preceding CR/LF
rString = comphelper::string::stripEnd(rString, ' ');
- xub_StrLen nDel = 0, nLen = rString.Len();
+ sal_Int32 nDel = 0, nLen = rString.getLength();
if( nLen >= 2 &&
- rString.Copy(nLen-2).CompareToAscii("//") == COMPARE_EQUAL )
+ rString[nLen-2] == '/' && rString[nLen - 1] == '/')
{
nDel = 2;
}
- else if( nLen && '\'' == rString.GetChar(nLen-1) )
+ else if( nLen && '\'' == rString[nLen-1] )
{
nDel = 1;
}
if( nDel && nLen >= nDel+1 )
{
- c = rString.GetChar( nLen-(nDel+1) );
+ c = rString[ nLen-(nDel+1) ];
if( '\r'==c || '\n'==c )
{
nDel++;
if( '\n'==c && nLen >= nDel+1 &&
- '\r'==rString.GetChar( nLen-(nDel+1) ) )
+ '\r'==rString[ nLen-(nDel+1) ] )
+ {
nDel++;
+ }
}
}
- rString.Erase( nLen-nDel );
+ rString = rString.copy(0, nLen-nDel );
}
}
}
diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx
index a95ec79..4d3fbf7 100644
--- a/svtools/source/svhtml/parhtml.cxx
+++ b/svtools/source/svhtml/parhtml.cxx
@@ -98,11 +98,16 @@
sal_uInt16 nValue = nDflt;
while( pOptEnums->pName )
- if( aValue.EqualsIgnoreCaseAscii( pOptEnums->pName ) )
+ {
+ if( aValue.equalsIgnoreAsciiCaseAscii( pOptEnums->pName ) )
+ {
break;
+ }
else
+ {
pOptEnums++;
-
+ }
+ }
if( pOptEnums->pName )
nValue = pOptEnums->nValue;
@@ -113,21 +118,20 @@
{
while( pOptEnums->pName )
{
- if( aValue.EqualsIgnoreCaseAscii( pOptEnums->pName ) )
+ if( aValue.equalsIgnoreAsciiCaseAscii( pOptEnums->pName ) )
break;
else
pOptEnums++;
}
- const sal_Char *pName = pOptEnums->pName;
- if( pName )
+ if( pOptEnums->pName )
rEnum = pOptEnums->nValue;
- return (pName != 0);
+ return (pOptEnums->pName != 0);
}
-HTMLOption::HTMLOption( sal_uInt16 nTok, const String& rToken,
- const String& rValue )
+HTMLOption::HTMLOption( sal_uInt16 nTok, const OUString& rToken,
+ const OUString& rValue )
: aValue(rValue)
, aToken(rToken)
, nToken( nTok )
@@ -168,9 +172,9 @@
// numerals in the string.
bool bInNum = false;
sal_uLong nNum = 0;
- for( xub_StrLen i=0; i<aValue.Len(); i++ )
+ for( sal_Int32 i=0; i<aValue.getLength(); i++ )
{
- register sal_Unicode c = aValue.GetChar( i );
+ register sal_Unicode c = aValue[ i ];
if( c>='0' && c<='9' )
{
nNum *= 10;
@@ -194,29 +198,29 @@
// Check whether numbers are separated by ',' and
// insert 0 if necessary
xub_StrLen nPos = 0;
- while( nPos < aValue.Len() )
+ while( nPos < aValue.getLength() )
{
register sal_Unicode c;
- while( nPos < aValue.Len() &&
- ((c=aValue.GetChar(nPos)) == ' ' || c == '\t' ||
+ while( nPos < aValue.getLength() &&
+ ((c=aValue[nPos]) == ' ' || c == '\t' ||
c == '\n' || c== '\r' ) )
nPos++;
- if( nPos==aValue.Len() )
+ if( nPos==aValue.getLength() )
rNumbers.push_back(0);
else
{
- xub_StrLen nEnd = aValue.Search( (sal_Unicode)',', nPos );
- if( STRING_NOTFOUND==nEnd )
+ xub_StrLen nEnd = aValue.indexOf( (sal_Unicode)',', nPos );
+ if( nEnd < 0 )
{
- sal_Int32 nTmp = aValue.Copy(nPos).ToInt32();
+ sal_Int32 nTmp = aValue.copy(nPos).toInt32();
rNumbers.push_back( nTmp >= 0 ? (sal_uInt32)nTmp : 0 );
- nPos = aValue.Len();
+ nPos = aValue.getLength();
}
else
{
sal_Int32 nTmp =
- aValue.Copy(nPos,nEnd-nPos).ToInt32();
+ aValue.copy(nPos,nEnd-nPos).toInt32();
rNumbers.push_back( nTmp >= 0 ? (sal_uInt32)nTmp : 0 );
nPos = nEnd+1;
}
@@ -230,27 +234,27 @@
DBG_ASSERT( (nToken>=HTML_OPTION_COLOR_START && nToken<HTML_OPTION_COLOR_END) || nToken==HTML_O_SIZE,
"GetColor: Option is not a color." );
- String aTmp( aValue );
- aTmp.ToUpperAscii();
+ OUString aTmp( aValue.toAsciiUpperCase());
+
sal_uInt32 nColor = SAL_MAX_UINT32;
- if( '#'!=aTmp.GetChar( 0 ) )
+ if( '#'!=aTmp[ 0 ] )
nColor = GetHTMLColor( aTmp );
if( SAL_MAX_UINT32 == nColor )
{
nColor = 0;
- xub_StrLen nPos = 0;
+ sal_Int32 nPos = 0;
for( sal_uInt32 i=0; i<6; i++ )
{
// Whatever Netscape does to get color values,
// at maximum three characters < '0' are ignored.
- register sal_Unicode c = nPos<aTmp.Len() ? aTmp.GetChar( nPos++ )
+ register sal_Unicode c = nPos<aTmp.getLength() ? aTmp[ nPos++ ]
: '0';
if( c < '0' )
{
- c = nPos<aTmp.Len() ? aTmp.GetChar(nPos++) : '0';
+ c = nPos<aTmp.getLength() ? aTmp[nPos++] : '0';
if( c < '0' )
- c = nPos<aTmp.Len() ? aTmp.GetChar(nPos++) : '0';
+ c = nPos<aTmp.getLength() ? aTmp[nPos++] : '0';
}
nColor *= 16;
if( c >= '0' && c <= '9' )
@@ -579,11 +583,10 @@
else
{
// If not scanning a tag return token
- aToken +=
- String( sTmpBuffer.makeStringAndClear() );
+ aToken += sTmpBuffer.makeStringAndClear();
if( cChar )
{
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
{
// restart with character
nNextCh = '&';
@@ -602,21 +605,22 @@
// Hack: _GetNextChar shall not read the
// next character
if( ';' != nNextCh )
- aToken += ' ';
+ aToken += " ";
if( 1U == cChar )
return HTML_NONBREAKSPACE;
if( 2U == cChar )
return HTML_SOFTHYPH;
}
- aToken += (sal_Unicode)'&';
- aToken +=
- String(sEntityBuffer.makeStringAndClear());
+ aToken += "&";
+ aToken += sEntityBuffer.makeStringAndClear();
break;
}
}
}
else
+ {
nNextCh = 0U;
+ }
}
// &{...};-JavaScript-Macros are not supported any longer.
else if( IsParserWorking() )
@@ -637,7 +641,7 @@
// options.
sTmpBuffer.append( (sal_Unicode)'\\' );
if( MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
}
if( IsParserWorking() )
{
@@ -648,7 +652,7 @@
{
// Restart with '&', the remainder is returned as
// text token.
- if( aToken.Len() || sTmpBuffer.getLength() )
+ if( !aToken.isEmpty() || sTmpBuffer.getLength() )
{
// _GetNextChar() returns the previous text and
// during the next execution a new character is read.
@@ -675,7 +679,7 @@
// Innerhalb von Tags kennzeichnen
sTmpBuffer.append( (sal_Unicode)'\\' );
if( MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
}
sTmpBuffer.append( (sal_Unicode)'\\' );
break;
@@ -766,10 +770,10 @@
if( sal_Unicode(EOF) == (nNextCh = GetNextChar()) &&
rInput.IsEof() )
{
- if( aToken.Len() || sTmpBuffer.getLength() > 1L )
+ if( !aToken.isEmpty() || sTmpBuffer.getLength() > 1L )
{
// Have seen s.th. aside from blanks?
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
return HTML_TEXTTOKEN;
}
else
@@ -787,17 +791,20 @@
default:
bEqSignFound = false;
if( (nNextCh==cBreak && !cQuote) ||
- (sal_uLong(aToken.Len()) + MAX_LEN) > sal_uLong(STRING_MAXLEN & ~1 ))
+ (sal_uLong(aToken.getLength()) + MAX_LEN) > sal_uLong(STRING_MAXLEN & ~1 ))
+ {
bContinue = false;
+ }
else
{
- do {
+ do
+ {
// All remaining characters make their way into the text.
sTmpBuffer.append( nNextCh );
if( MAX_LEN == sTmpBuffer.getLength() )
{
- aToken += String(sTmpBuffer.makeStringAndClear());
- if( (sal_uLong(aToken.Len()) + MAX_LEN) >
+ aToken += sTmpBuffer.makeStringAndClear();
+ if( (sal_uLong(aToken.getLength()) + MAX_LEN) >
sal_uLong(STRING_MAXLEN & ~1 ) )
{
nNextCh = GetNextChar();
@@ -805,27 +812,28 @@
}
}
if( ( sal_Unicode(EOF) == (nNextCh = GetNextChar()) &&
- rInput.IsEof() ) ||
- !IsParserWorking() )
+ rInput.IsEof() ) || !IsParserWorking() )
{
if( sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
return HTML_TEXTTOKEN;
}
- } while( HTML_ISALPHA( nNextCh ) || HTML_ISDIGIT( nNextCh ) );
+ }
+ while( HTML_ISALPHA( nNextCh ) || HTML_ISDIGIT( nNextCh ) );
+
bNextCh = false;
}
}
if( MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
if( bContinue && bNextCh )
nNextCh = GetNextChar();
}
if( sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
return HTML_TEXTTOKEN;
}
@@ -840,7 +848,7 @@
// thus we don't have to search it again.
bReadScript = false;
bReadStyle = false;
- aEndToken.Erase();
+ aEndToken = "";
bEndTokenFound = false;
return 0;
@@ -860,7 +868,7 @@
// Maybe we've reached the end.
// Save what we have read previously...
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
// and remember position in stream.
sal_uLong nStreamPos = rInput.Tell();
@@ -891,7 +899,7 @@
String aTok( sTmpBuffer.toString() );
aTok.ToUpperAscii();
bool bDone = false;
- if( bReadScript || aEndToken.Len() )
+ if( bReadScript || !aEndToken.isEmpty() )
{
if( !bReadComment )
{
@@ -938,13 +946,13 @@
bContinue = false;
// nToken==0 means, _GetNextToken continues to read
- if( !aToken.Len() && (bReadStyle || bReadScript) )
+ if( aToken.isEmpty() && (bReadStyle || bReadScript) )
{
// Immediately close environment (or context?)
// and parse the end token
bReadScript = false;
bReadStyle = false;
- aEndToken.Erase();
+ aEndToken = "";
nToken = 0;
}
else
@@ -967,9 +975,9 @@
else
{
// remember "</" , everything else we find in the buffer
- aToken += (sal_Unicode)'<';
+ aToken += "<";
if( bOffState )
- aToken += (sal_Unicode)'/';
+ aToken += "/";
bNextCh = false;
}
@@ -986,7 +994,7 @@
bTwoMinus = true;
if( MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
sTmpBuffer.append( nNextCh );
nNextCh = GetNextChar();
}
@@ -1016,7 +1024,7 @@
if( rInput.IsEof() )
{
bContinue = false;
- if( aToken.Len() || sTmpBuffer.getLength() )
+ if( !aToken.isEmpty() || sTmpBuffer.getLength() )
{
bEndTokenFound = true;
}
@@ -1024,7 +1032,7 @@
{
bReadScript = false;
bReadStyle = false;
- aEndToken.Erase();
+ aEndToken = "";
nToken = 0;
}
break;
@@ -1038,7 +1046,7 @@
if( (!bContinue && sTmpBuffer.getLength() > 0L) ||
MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
if( bContinue && bNextCh )
nNextCh = GetNextChar();
@@ -1056,14 +1064,14 @@
int HTMLParser::_GetNextToken()
{
int nRet = 0;
- sSaveToken.Erase();
+ sSaveToken = "";
if (mnPendingOffToken)
{
// HTML_<TOKEN>_OFF generated for HTML_<TOKEN>_ON
nRet = mnPendingOffToken;
mnPendingOffToken = 0;
- aToken.Erase();
+ aToken = "";
return nRet;
}
@@ -1085,7 +1093,7 @@
bReadNextChar = false;
}
- if( bReadScript || bReadStyle || aEndToken.Len() )
+ if( bReadScript || bReadStyle || !aEndToken.isEmpty() )
{
nRet = _GetNextRawToken();
if( nRet || !IsParserWorking() )
@@ -1114,13 +1122,13 @@
do {
sTmpBuffer.append( nNextCh );
if( MAX_LEN == sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
nNextCh = GetNextChar();
} while( '>' != nNextCh && '/' != nNextCh && !HTML_ISSPACE( nNextCh ) &&
IsParserWorking() && !rInput.IsEof() );
if( sTmpBuffer.getLength() )
- aToken += String(sTmpBuffer.makeStringAndClear());
+ aToken += sTmpBuffer.makeStringAndClear();
// Skip blanks
while( HTML_ISSPACE( nNextCh ) && IsParserWorking() )
@@ -1135,7 +1143,7 @@
// Search token in table:
sSaveToken = aToken;
- aToken.ToUpperAscii();
+ aToken = aToken.toAsciiUpperCase();
if( 0 == (nRet = GetHTMLToken( aToken )) )
// Unknown control
nRet = HTML_UNKNOWNCONTROL_ON;
@@ -1162,11 +1170,11 @@
// and append a blank.
aToken = sSaveToken;
if( '>'!=nNextCh )
- aToken += (sal_Unicode)' ';
+ aToken += " ";
sal_uLong nCStreamPos = 0;
sal_uLong nCLineNr = 0;
sal_uLong nCLinePos = 0;
- xub_StrLen nCStrLen = 0;
+ sal_Int32 nCStrLen = 0;
bool bDone = false;
// Read until closing -->. If not found restart at first >
@@ -1177,18 +1185,17 @@
if( !nCStreamPos )
{
nCStreamPos = rInput.Tell();
- nCStrLen = aToken.Len();
+ nCStrLen = aToken.getLength();
nCLineNr = GetLineNr();
nCLinePos = GetLinePos();
}
- bDone = aToken.Len() >= 2 &&
- aToken.Copy(aToken.Len()-2,2).
- EqualsAscii( "--" );
+ bDone = (aToken.getLength() >= 2) &&
+ (aToken.copy(aToken.getLength() - 2,2) == "--");
if( !bDone )
- aToken += nNextCh;
+ aToken += OUString(nNextCh);
}
else
- aToken += nNextCh;
+ aToken += OUString(nNextCh);
if( !bDone )
nNextCh = GetNextChar();
}
@@ -1198,14 +1205,14 @@
SetLineNr( nCLineNr );
SetLinePos( nCLinePos );
ClearTxtConvContext();
- aToken.Erase( nCStrLen );
+ aToken = aToken.copy(0, nCStrLen);
nNextCh = '>';
}
}
else
{
// TokenString not needed anymore
- aToken.Erase();
+ aToken = "";
}
// Read until closing '>'
@@ -1217,11 +1224,11 @@
// generate pending HTML_<TOKEN>_OFF for HTML_<TOKEN>_ON
// Do not convert this to a single HTML_<TOKEN>_OFF
// which lead to fdo#56772.
- if ((HTML_TOKEN_ONOFF & nRet) && (aToken.Len() >= 1) &&
- ('/' == aToken.GetChar(aToken.Len()-1)))
+ if ((HTML_TOKEN_ONOFF & nRet) && (aToken.getLength() >= 1) &&
+ ('/' == aToken[aToken.getLength()-1]))
{
mnPendingOffToken = nRet + 1; // HTML_<TOKEN>_ON -> HTML_<TOKEN>_OFF
- aToken.Erase( aToken.Len()-1, 1); // remove trailing '/'
+ aToken = aToken.copy(0, aToken.getLength()-1); // remove trailing '/'
}
if( sal_Unicode(EOF) == nNextCh && rInput.IsEof() )
{
@@ -1232,7 +1239,7 @@
SetLinePos( nLinePos );
ClearTxtConvContext();
- aToken = '<';
+ aToken = "<";
nRet = HTML_TEXTTOKEN;
nNextCh = GetNextChar();
bNextCh = false;
@@ -1257,15 +1264,17 @@
SetLinePos( nLinePos );
ClearTxtConvContext();
- aToken = '<';
+ aToken = "<";
nRet = HTML_TEXTTOKEN;
nNextCh = GetNextChar();
bNextCh = false;
break;
}
if( SVPAR_PENDING == eState )
+ {
bReadNextChar = bReadNextCharSave;
- aToken.Erase();
+ }
+ aToken = "";
}
else if( '%' == nNextCh )
{
@@ -1278,11 +1287,11 @@
// Read until closing %>. If not found restart at first >.
while( !bDone && !rInput.IsEof() && IsParserWorking() )
{
- bDone = '>'==nNextCh && aToken.Len() >= 1 &&
- '%' == aToken.GetChar( aToken.Len()-1 );
+ bDone = '>'==nNextCh && aToken.getLength() >= 1 &&
+ '%' == aToken[ aToken.getLength()-1] ;
if( !bDone )
{
- aToken += nNextCh;
+ aToken += OUString(nNextCh);
nNextCh = GetNextChar();
}
}
@@ -1292,19 +1301,19 @@
SetLineNr( nCLineNr );
SetLinePos( nCLinePos );
ClearTxtConvContext();
- aToken.AssignAscii( "<%", 2 );
+ aToken = "<%";
nRet = HTML_TEXTTOKEN;
break;
}
if( IsParserWorking() )
{
sSaveToken = aToken;
- aToken.Erase();
+ aToken = "";
}
}
else
{
- aToken = '<';
+ aToken = "<";
nRet = HTML_TEXTTOKEN;
bNextCh = false;
break;
@@ -1395,7 +1404,7 @@
scan_text:
// "normal" text to come
nRet = ScanText();
- bNextCh = 0 == aToken.Len();
+ bNextCh = 0 == aToken.getLength();
// the text should be processed
if( !bNextCh && eState == SVPAR_PENDING )
@@ -1427,16 +1436,16 @@
void HTMLParser::UnescapeToken()
{
- xub_StrLen nPos=0;
+ sal_Int32 nPos=0;
bool bEscape = false;
- while( nPos < aToken.Len() )
+ while( nPos < aToken.getLength() )
{
bool bOldEscape = bEscape;
bEscape = false;
- if( '\\'==aToken.GetChar(nPos) && !bOldEscape )
+ if( '\\'==aToken[nPos] && !bOldEscape )
{
- aToken.Erase( nPos, 1 );
+ aToken = aToken.copy(0, nPos) + aToken.copy(nPos + 1);
bEscape = true;
}
else
@@ -1448,34 +1457,35 @@
const HTMLOptions& HTMLParser::GetOptions( sal_uInt16 *pNoConvertToken ) const
{
+ OUString sToken(aToken);
+
// If the options for the current token have already been returned,
// return them once again.
if (!maOptions.empty())
return maOptions;
- xub_StrLen nPos = 0;
- while( nPos < aToken.Len() )
+ sal_Int32 nPos = 0;
+ while( nPos < sToken.getLength() )
{
// A letter? Option beginning here.
- if( HTML_ISALPHA( aToken.GetChar(nPos) ) )
+ if( HTML_ISALPHA( sToken[nPos] ) )
{
int nToken;
- String aValue;
- xub_StrLen nStt = nPos;
+ OUString aValue;
+ sal_Int32 nStt = nPos;
sal_Unicode cChar = 0;
// Actually only certain characters allowed.
// Netscape only looks for "=" and white space (c.f.
// Mozilla: PA_FetchRequestedNameValues in lipparse/pa_mdl.c)
- while( nPos < aToken.Len() && '=' != (cChar=aToken.GetChar(nPos)) &&
+ while( nPos < sToken.getLength() && '=' != (cChar=sToken[nPos]) &&
HTML_ISPRINTABLE(cChar) && !HTML_ISSPACE(cChar) )
nPos++;
- String sName( aToken.Copy( nStt, nPos-nStt ) );
+ OUString sName( sToken.copy( nStt, nPos-nStt ) );
// PlugIns require original token name. Convert to upper case only for searching.
- String sNameUpperCase( sName );
- sNameUpperCase.ToUpperAscii();
+ OUString sNameUpperCase( sName.toAsciiUpperCase() );
nToken = GetHTMLOption( sNameUpperCase ); // Name is ready
DBG_ASSERTWARNING( nToken!=HTML_O_UNKNOWN,
@@ -1484,24 +1494,25 @@
nToken >= HTML_OPTION_SCRIPT_END) &&
(!pNoConvertToken || nToken != *pNoConvertToken);
- while( nPos < aToken.Len() &&
- ( !HTML_ISPRINTABLE( (cChar=aToken.GetChar(nPos)) ) ||
+ while( nPos < sToken.getLength() &&
+ ( !HTML_ISPRINTABLE( (cChar=sToken[nPos]) ) ||
HTML_ISSPACE(cChar) ) )
nPos++;
// Option with value?
- if( nPos!=aToken.Len() && '='==cChar )
+ if( nPos!=sToken.getLength() && '='==cChar )
{
nPos++;
- while( nPos < aToken.Len() &&
- ( !HTML_ISPRINTABLE( (cChar=aToken.GetChar(nPos)) ) ||
+ while( nPos < sToken.getLength() &&
+ ( !HTML_ISPRINTABLE( (cChar=sToken[nPos]) ) ||
' '==cChar || '\t'==cChar || '\r'==cChar || '\n'==cChar ) )
- nPos++;
-
- if( nPos != aToken.Len() )
{
- xub_StrLen nLen = 0;
+ nPos++;
+ }
+ if( nPos != sToken.getLength() )
+ {
+ sal_Int32 nLen = 0;
nStt = nPos;
if( ('"'==cChar) || ('\'')==cChar )
{
@@ -1509,17 +1520,24 @@
nPos++; nStt++;
bool bDone = false;
bool bEscape = false;
- while( nPos < aToken.Len() && !bDone )
+ while( nPos < sToken.getLength() && !bDone )
{
bool bOldEscape = bEscape;
bEscape = false;
- cChar = aToken.GetChar(nPos);
+ cChar = sToken[nPos];
switch( cChar )
{
case '\r':
case '\n':
if( bStripCRLF )
- ((String &)aToken).Erase( nPos, 1 );
+ {
+ OUString aTemp(sToken.copy(0, nPos));
+ if(sToken.getLength() > nPos)
+ {
+ aTemp += sToken.copy(nPos + 1);
+ }
+ sToken = aTemp;
+ }
else
nPos++, nLen++;
break;
@@ -1530,7 +1548,12 @@
}
else
{
- ((String &)aToken).Erase( nPos, 1 );
+ OUString aTemp = sToken.copy(0, nPos);
+ if(sToken.getLength() > nPos)
+ {
+ aTemp = sToken.copy(nPos + 1);
+ }
+ sToken = aTemp;
bEscape = true;
}
break;
@@ -1545,7 +1568,7 @@
break;
}
}
- if( nPos!=aToken.Len() )
+ if( nPos!=sToken.getLength() )
nPos++;
}
else
@@ -1553,11 +1576,11 @@
// More liberal than the standard: allow all printable characters
bool bEscape = false;
bool bDone = false;
- while( nPos < aToken.Len() && !bDone )
+ while( nPos < sToken.getLength() && !bDone )
{
bool bOldEscape = bEscape;
bEscape = false;
- sal_Unicode c = aToken.GetChar(nPos);
+ sal_Unicode c = sToken[nPos];
switch( c )
{
case ' ':
@@ -1579,7 +1602,12 @@
}
else
{
- ((String &)aToken).Erase( nPos, 1 );
+ OUString aTemp = sToken.copy(0, nPos);
+ if(sToken.getLength() > nPos)
+ {
+ aTemp = sToken.copy(nPos + 1);
+ }
+ sToken = aTemp;
bEscape = true;
}
break;
@@ -1595,7 +1623,9 @@
}
if( nLen )
- aValue = aToken.Copy( nStt, nLen );
+ {
+ aValue = sToken.copy( nStt, nLen );
+ }
}
}
@@ -1637,8 +1667,8 @@
case HTML_TABCHAR:
{
sal_Int32 nSpaces = (8 - (nPre_LinePos % 8));
- DBG_ASSERT( !aToken.Len(), "Why is the token not empty?" );
- if (aToken.Len() < nSpaces)
+ DBG_ASSERT( aToken.isEmpty(), "Why is the token not empty?" );
+ if (aToken.getLength() < nSpaces)
{
using comphelper::string::padToLength;
OUStringBuffer aBuf(aToken);
@@ -1650,7 +1680,7 @@
break;
// Keep those
case HTML_TEXTTOKEN:
- nPre_LinePos += aToken.Len();
+ nPre_LinePos += aToken.getLength();
break;
case HTML_SELECT_ON:
@@ -1817,20 +1847,23 @@
{
if( (HTML_TOKEN_ONOFF & nToken) && (1 & nToken) )
{
- sSaveToken.Insert( '<', 0 );
- sSaveToken.Insert( '/', 1 );
+ sSaveToken = "</" + sSaveToken;
}
else
- sSaveToken.Insert( '<', 0 );
- if( aToken.Len() )
+ {
+ sSaveToken = "<" + sSaveToken;
+ }
+ if( aToken.getLength() )
{
UnescapeToken();
- sSaveToken += (sal_Unicode)' ';
- aToken.Insert( sSaveToken, 0 );
+ sSaveToken += " ";
+ aToken = sSaveToken + aToken;
}
else
+ {
aToken = sSaveToken;
- aToken += (sal_Unicode)'>';
+ }
+ aToken += ">";
nToken = HTML_TEXTTOKEN;
}
break;
@@ -1978,69 +2011,69 @@
return false;
}
-bool HTMLParser::InternalImgToPrivateURL( String& rURL )
+bool HTMLParser::InternalImgToPrivateURL( OUString& rURL )
{
- if( rURL.Len() < 19 || 'i' != rURL.GetChar(0) ||
- rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_gopher, 9 ) != COMPARE_EQUAL )
+ if( rURL.getLength() < 19 || 'i' != rURL[0] ||
+ !rURL.startsWith( OOO_STRING_SVTOOLS_HTML_internal_gopher))
+ {
return false;
+ }
bool bFound = false;
- if( rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_gopher,16) == COMPARE_EQUAL )
+ if( rURL.startsWith( OOO_STRING_SVTOOLS_HTML_internal_gopher))
{
- String aName( rURL.Copy(16) );
- switch( aName.GetChar(0) )
+ OUString aName( rURL.copy(16) );
+ switch( aName[0] )
{
case 'b':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_binary );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_binary;
break;
case 'i':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_image ) ||
- aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_index );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_image ||
+ aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_index;
break;
case 'm':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_menu ) ||
- aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_movie );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_menu ||
+ aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_movie;
break;
case 's':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_sound );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_sound;
break;
case 't':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_telnet ) ||
- aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_text );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_telnet ||
+ aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_text;
break;
case 'u':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_unknown );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_GOPHER_unknown;
break;
}
}
- else if( rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_icon,14) == COMPARE_EQUAL )
+ else if( rURL.startsWith( OOO_STRING_SVTOOLS_HTML_internal_icon))
{
- String aName( rURL.Copy(14) );
- switch( aName.GetChar(0) )
+ OUString aName( rURL.copy(14) );
+ switch( aName[0] )
{
case 'b':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_baddata );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_ICON_baddata;
break;
case 'd':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_delayed );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_ICON_delayed;
break;
case 'e':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_embed );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_ICON_embed;
break;
case 'i':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_insecure );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_ICON_insecure;
break;
case 'n':
- bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_notfound );
+ bFound = aName == OOO_STRING_SVTOOLS_HTML_INT_ICON_notfound;
break;
}
}
if( bFound )
{
- String sTmp ( rURL );
- rURL.AssignAscii( OOO_STRING_SVTOOLS_HTML_private_image );
- rURL.Append( sTmp );
+ rURL = OUString( OOO_STRING_SVTOOLS_HTML_private_image ) + rURL;
}
return bFound;
@@ -2259,7 +2292,7 @@
return bRet;
}
-rtl_TextEncoding HTMLParser::GetEncodingByMIME( const String& rMime )
+rtl_TextEncoding HTMLParser::GetEncodingByMIME( const OUString& rMime )
{
OUString sType;
OUString sSubType;
@@ -2285,9 +2318,9 @@
for( bool bCont = pHTTPHeader->GetFirst( aKV ); bCont;
bCont = pHTTPHeader->GetNext( aKV ) )
{
- if( aKV.GetKey().EqualsIgnoreCaseAscii( OOO_STRING_SVTOOLS_HTML_META_content_type ) )
+ if( aKV.GetKey().equalsIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_META_content_type ) )
{
- if( aKV.GetValue().Len() )
+ if( !aKV.GetValue().isEmpty() )
{
eRet = HTMLParser::GetEncodingByMIME( aKV.GetValue() );
}
diff --git a/svtools/source/svrtf/parrtf.cxx b/svtools/source/svrtf/parrtf.cxx
index f064a56..4881e8d 100644
--- a/svtools/source/svrtf/parrtf.cxx
+++ b/svtools/source/svrtf/parrtf.cxx
@@ -53,124 +53,131 @@
int SvRTFParser::_GetNextToken()
{
int nRet = 0;
- do {
+ do
+ {
int bNextCh = true;
switch( nNextCh )
{
case '\\':
+ // Steuerzeichen
+ switch( nNextCh = GetNextChar() )
{
- // Steuerzeichen
- switch( nNextCh = GetNextChar() )
+ case '{':
+ case '}':
+ case '\\':
+ case '+': // habe ich in einem RTF-File gefunden
+ case '~': // nonbreaking space
+ case '-': // optional hyphen
+ case '_': // nonbreaking hyphen
+ case '\'': // HexValue
+ nNextCh = '\\';
+ rInput.SeekRel( -1 );
+ ScanText();
+ nRet = RTF_TEXTTOKEN;
+ bNextCh = 0 == nNextCh;
+ break;
+
+ case '*': // ignoreflag
+ nRet = RTF_IGNOREFLAG;
+ break;
+ case ':': // subentry in an index entry
+ nRet = RTF_SUBENTRYINDEX;
+ break;
+ case '|': // formula-charakter
+ nRet = RTF_FORMULA;
+ break;
+
+ case 0x0a:
+ case 0x0d:
+ nRet = RTF_PAR;
+ break;
+
+ default:
+ if( RTF_ISALPHA( nNextCh ) )
{
- case '{':
- case '}':
- case '\\':
- case '+': // habe ich in einem RTF-File gefunden
- case '~': // nonbreaking space
- case '-': // optional hyphen
- case '_': // nonbreaking hyphen
- case '\'': // HexValue
- nNextCh = '\\';
- rInput.SeekRel( -1 );
- ScanText();
- nRet = RTF_TEXTTOKEN;
- bNextCh = 0 == nNextCh;
- break;
-
- case '*': // ignoreflag
- nRet = RTF_IGNOREFLAG;
- break;
- case ':': // subentry in an index entry
- nRet = RTF_SUBENTRYINDEX;
- break;
- case '|': // formula-charakter
- nRet = RTF_FORMULA;
- break;
-
- case 0x0a:
- case 0x0d:
- nRet = RTF_PAR;
- break;
-
- default:
- if( RTF_ISALPHA( nNextCh ) )
+ aToken = "\\";
{
- aToken = '\\';
+ OUStringBuffer aStrBuffer(MAX_TOKEN_LEN);
+ sal_Int32 nStrLen = 0;
+ do
{
- String aStrBuffer;
- sal_Unicode* pStr = aStrBuffer.AllocBuffer(
- MAX_TOKEN_LEN );
- xub_StrLen nStrLen = 0;
- do {
- *(pStr + nStrLen++) = nNextCh;
- if( MAX_TOKEN_LEN == nStrLen )
- {
- aToken += aStrBuffer;
- aToken.GetBufferAccess(); // make unique string!
- nStrLen = 0;
- }
- nNextCh = GetNextChar();
- } while( RTF_ISALPHA( nNextCh ) );
- if( nStrLen )
+ aStrBuffer.append((sal_Unicode)nNextCh);
+ nStrLen += 1;
+ if( MAX_TOKEN_LEN == nStrLen )
{
- aStrBuffer.ReleaseBufferAccess( nStrLen );
- aToken += aStrBuffer;
+ aToken += aStrBuffer.makeStringAndClear();
+ nStrLen = 0;
}
- }
-
- // Minus fuer numerischen Parameter
- int bNegValue = false;
- if( '-' == nNextCh )
- {
- bNegValue = true;
nNextCh = GetNextChar();
}
+ while( RTF_ISALPHA( nNextCh ) );
+ if( nStrLen )
+ {
+ aToken += aStrBuffer.makeStringAndClear();
+ }
+ }
- // evt. Numerischer Parameter
- if( RTF_ISDIGIT( nNextCh ) )
+ // Minus fuer numerischen Parameter
+ int bNegValue = false;
+ if( '-' == nNextCh )
+ {
+ bNegValue = true;
+ nNextCh = GetNextChar();
+ }
+
+ // evt. Numerischer Parameter
+ if( RTF_ISDIGIT( nNextCh ) )
+ {
+ nTokenValue = 0;
+ do
{
- nTokenValue = 0;
- do {
- nTokenValue *= 10;
- nTokenValue += nNextCh - '0';
- nNextCh = GetNextChar();
- } while( RTF_ISDIGIT( nNextCh ) );
- if( bNegValue )
- nTokenValue = -nTokenValue;
- bTokenHasValue=true;
- }
- else if( bNegValue ) // das Minus wieder zurueck
- {
- nNextCh = '-';
- rInput.SeekRel( -1 );
- }
- if( ' ' == nNextCh ) // Blank gehoert zum Token!
+ nTokenValue *= 10;
+ nTokenValue += nNextCh - '0';
nNextCh = GetNextChar();
+ }
+ while( RTF_ISDIGIT( nNextCh ) );
- // suche das Token in der Tabelle:
- if( 0 == (nRet = GetRTFToken( aToken )) )
- // Unknown Control
- nRet = RTF_UNKNOWNCONTROL;
-
- // bug 76812 - unicode token handled as normal text
- bNextCh = false;
- switch( nRet )
+ if( bNegValue )
{
- case RTF_UC:
- if( 0 <= nTokenValue )
- {
- nUCharOverread = (sal_uInt8)nTokenValue;
- //cmc: other ifdef breaks #i3584
- aParserStates.top().
- nUCharOverread = nUCharOverread;
- }
- aToken.Erase(); // #i47831# erase token to prevent the token from beeing treated as text
- // read next token
- nRet = 0;
- break;
+ nTokenValue = -nTokenValue;
+ }
+ bTokenHasValue=true;
+ }
+ else if( bNegValue ) // das Minus wieder zurueck
+ {
+ nNextCh = '-';
+ rInput.SeekRel( -1 );
+ }
+ if( ' ' == nNextCh ) // Blank gehoert zum Token!
+ {
+ nNextCh = GetNextChar();
+ }
+ // suche das Token in der Tabelle:
+ if( 0 == (nRet = GetRTFToken( aToken )) )
+ {
+ // Unknown Control
+ nRet = RTF_UNKNOWNCONTROL;
+ }
+ // bug 76812 - unicode token handled as normal text
+ bNextCh = false;
+ switch( nRet )
+ {
+ case RTF_UC:
+ if( 0 <= nTokenValue )
+ {
+ nUCharOverread = (sal_uInt8)nTokenValue;
+ //cmc: other ifdef breaks #i3584
+ aParserStates.top().
+ nUCharOverread = nUCharOverread;
+ }
+ aToken = ""; // #i47831# erase token to prevent the token from beeing treated as text
+ // read next token
+ nRet = 0;
+ break;
- case RTF_UPR:
- if (!_inSkipGroup) {
+ case RTF_UPR:
+ if (!_inSkipGroup)
+ {
// UPR - overread the group with the ansi
// information
while( '{' != _GetNextToken() )
@@ -178,45 +185,44 @@
SkipGroup();
_GetNextToken(); // overread the last bracket
nRet = 0;
- }
- break;
-
- case RTF_U:
- if( !bRTF_InTextRead )
- {
- nRet = RTF_TEXTTOKEN;
- aToken = (sal_Unicode)nTokenValue;
-
- // overread the next n "RTF" characters. This
- // can be also \{, \}, \'88
- for( sal_uInt8 m = 0; m < nUCharOverread; ++m )
- {
- sal_Unicode cAnsi = nNextCh;
- while( 0xD == cAnsi )
- cAnsi = GetNextChar();
- while( 0xA == cAnsi )
- cAnsi = GetNextChar();
-
- if( '\\' == cAnsi &&
- '\'' == ( cAnsi = GetNextChar() ))
- // HexValue ueberlesen
- cAnsi = GetHexValue();
- nNextCh = GetNextChar();
- }
- ScanText();
- bNextCh = 0 == nNextCh;
- }
- break;
}
+ break;
+
+ case RTF_U:
+ if( !bRTF_InTextRead )
+ {
+ nRet = RTF_TEXTTOKEN;
+ aToken = OUString((sal_Unicode)nTokenValue);
+
+ // overread the next n "RTF" characters. This
+ // can be also \{, \}, \'88
+ for( sal_uInt8 m = 0; m < nUCharOverread; ++m )
+ {
+ sal_Unicode cAnsi = nNextCh;
+ while( 0xD == cAnsi )
+ cAnsi = GetNextChar();
+ while( 0xA == cAnsi )
+ cAnsi = GetNextChar();
+
+ if( '\\' == cAnsi &&
+ '\'' == ( cAnsi = GetNextChar() ))
+ // HexValue ueberlesen
+ cAnsi = GetHexValue();
+ nNextCh = GetNextChar();
+ }
+ ScanText();
+ bNextCh = 0 == nNextCh;
+ }
+ break;
}
- else if( SVPAR_PENDING != eState )
- {
- // Bug 34631 - "\ " ueberlesen - Blank als Zeichen
- // eState = SVPAR_ERROR;
- bNextCh = false;
- }
- break;
}
+ else if( SVPAR_PENDING != eState )
+ {
+ // Bug 34631 - "\ " ueberlesen - Blank als Zeichen
+ // eState = SVPAR_ERROR;
+ bNextCh = false;
+ }
+ break;
}
break;
@@ -226,18 +232,16 @@
break;
case '{':
+ if( 0 <= nOpenBrakets )
{
- if( 0 <= nOpenBrakets )
- {
- RtfParserState_Impl aState( nUCharOverread, GetSrcEncoding() );
- aParserStates.push( aState );
- }
- ++nOpenBrakets;
- DBG_ASSERT(
+ RtfParserState_Impl aState( nUCharOverread, GetSrcEncoding() );
+ aParserStates.push( aState );
+ }
+ ++nOpenBrakets;
+ DBG_ASSERT(
static_cast<size_t>(nOpenBrakets) == aParserStates.size(),
"ParserStateStack unequal to bracket count" );
- nRet = nNextCh;
- }
+ nRet = nNextCh;
break;
case '}':
@@ -279,7 +283,9 @@
if( bNextCh )
nNextCh = GetNextChar();
- } while( !nRet && SVPAR_WORKING == eState );
+ }
+ while( !nRet && SVPAR_WORKING == eState );
+
return nRet;
}
@@ -306,154 +312,157 @@
void SvRTFParser::ScanText( const sal_Unicode cBreak )
{
- String aStrBuffer;
+ OUStringBuffer aStrBuffer;
int bWeiter = true;
- while( bWeiter && IsParserWorking() && aStrBuffer.Len() < MAX_STRING_LEN)
+ while( bWeiter && IsParserWorking() && aStrBuffer.getLength() < MAX_STRING_LEN)
{
int bNextCh = true;
+ OStringBuffer aByteString;
switch( nNextCh )
{
case '\\':
+ switch (nNextCh = GetNextChar())
{
- switch (nNextCh = GetNextChar())
+ case '\'':
+ for(;;)
{
- case '\'':
+ char c = (char)GetHexValue();
+ /*
+ * Note: \'00 is a valid internal character in a
+ * string in RTF. OStringBuffer supports
+ * appending nulls fine
+ */
+ aByteString.append(c);
+
+ bool bBreak = false;
+ sal_Char nSlash = '\\';
+ while (!bBreak)
{
-
- OStringBuffer aByteString;
- while (1)
+ wchar_t __next=GetNextChar();
+ if (__next>0xFF) // fix for #i43933# and #i35653#
{
- char c = (char)GetHexValue();
- /*
- * Note: \'00 is a valid internal character in a
- * string in RTF. OStringBuffer supports
- * appending nulls fine
- */
- aByteString.append(c);
-
- bool bBreak = false;
- sal_Char nSlash = '\\';
- while (!bBreak)
+ if (aByteString.getLength())
{
- wchar_t __next=GetNextChar();
- if (__next>0xFF) // fix for #i43933# and #i35653#
- {
- if (aByteString.getLength())
- aStrBuffer.Append(String(OStringToOUString(aByteString.makeStringAndClear(), GetSrcEncoding())));
- aStrBuffer.Append((sal_Unicode)__next);
-
- continue;
- }
- nSlash = (sal_Char)__next;
- while (nSlash == 0xD || nSlash == 0xA)
- nSlash = (sal_Char)GetNextChar();
-
- switch (nSlash)
- {
- case '{':
- case '}':
- case '\\':
- bBreak = true;
- break;
- default:
- aByteString.append(nSlash);
- break;
- }
+ aStrBuffer.append(OStringToOUString(aByteString.makeStringAndClear(), GetSrcEncoding()));
}
+ aStrBuffer.append((sal_Unicode)__next);
- nNextCh = GetNextChar();
-
- if (nSlash != '\\' || nNextCh != '\'')
- {
- rInput.SeekRel(-1);
- nNextCh = nSlash;
- break;
- }
+ continue;
+ }
+ nSlash = (sal_Char)__next;
+ while (nSlash == 0xD || nSlash == 0xA)
+ {
+ nSlash = (sal_Char)GetNextChar();
}
- bNextCh = false;
-
- if (aByteString.getLength())
- aStrBuffer.Append(String(OStringToOUString(aByteString.makeStringAndClear(), GetSrcEncoding())));
+ switch (nSlash)
+ {
+ case '{':
+ case '}':
+ case '\\':
+ bBreak = true;
+ break;
+ default:
+ aByteString.append(nSlash);
+ break;
+ }
}
- break;
- case '\\':
- case '}':
- case '{':
- case '+': // habe ich in einem RTF-File gefunden
- aStrBuffer.Append(nNextCh);
- break;
- case '~': // nonbreaking space
- aStrBuffer.Append(static_cast< sal_Unicode >(0xA0));
- break;
- case '-': // optional hyphen
- aStrBuffer.Append(static_cast< sal_Unicode >(0xAD));
- break;
- case '_': // nonbreaking hyphen
- aStrBuffer.Append(static_cast< sal_Unicode >(0x2011));
- break;
- case 'u':
- // UNI-Code Zeichen lesen
+ nNextCh = GetNextChar();
+
+ if (nSlash != '\\' || nNextCh != '\'')
{
+ rInput.SeekRel(-1);
+ nNextCh = nSlash;
+ break;
+ }
+ }
+
+ bNextCh = false;
+
+ if (aByteString.getLength())
+ {
+ aStrBuffer.append(OStringToOUString(aByteString.makeStringAndClear(), GetSrcEncoding()));
+ }
+ break;
+ case '\\':
+ case '}':
+ case '{':
+ case '+': // habe ich in einem RTF-File gefunden
+ aStrBuffer.append(nNextCh);
+ break;
+ case '~': // nonbreaking space
+ aStrBuffer.append((sal_Unicode)0x00A0);
+ break;
+ case '-': // optional hyphen
+ aStrBuffer.append((sal_Unicode)0x00AD);
+ break;
+ case '_': // nonbreaking hyphen
+ aStrBuffer.append((sal_Unicode)0x2011);
+ break;
+
+ case 'u':
+ // UNI-Code Zeichen lesen
+ nNextCh = GetNextChar();
+ rInput.SeekRel( -2 );
+
+ if( '-' == nNextCh || RTF_ISDIGIT( nNextCh ) )
+ {
+ bRTF_InTextRead = true;
+
+ OUString sSave( aToken );
+ nNextCh = '\\';
+#ifdef DBG_UTIL
+ int nToken =
+#endif
+ _GetNextToken();
+ DBG_ASSERT( RTF_U == nToken, "doch kein UNI-Code Zeichen" );
+ // dont convert symbol chars
+ aStrBuffer.append((sal_Unicode)nTokenValue);
+
+ // overread the next n "RTF" characters. This
+ // can be also \{, \}, \'88
+ for( sal_uInt8 m = 0; m < nUCharOverread; ++m )
+ {
+ sal_Unicode cAnsi = nNextCh;
+ while( 0xD == cAnsi )
+ {
+ cAnsi = GetNextChar();
+ }
+ while( 0xA == cAnsi )
+ {
+ cAnsi = GetNextChar();
+ }
+ if( '\\' == cAnsi &&
+ '\'' == ( cAnsi = GetNextChar() ))
+ {
+ // HexValue ueberlesen
+ cAnsi = GetHexValue();
+ }
nNextCh = GetNextChar();
- rInput.SeekRel( -2 );
-
- if( '-' == nNextCh || RTF_ISDIGIT( nNextCh ) )
- {
- bRTF_InTextRead = true;
-
- String sSave( aToken );
- nNextCh = '\\';
- #ifdef DBG_UTIL
- int nToken =
- #endif
- _GetNextToken();
- DBG_ASSERT( RTF_U == nToken, "doch kein UNI-Code Zeichen" );
- // dont convert symbol chars
- aStrBuffer.Append(
- static_cast< sal_Unicode >(nTokenValue));
-
- // overread the next n "RTF" characters. This
- // can be also \{, \}, \'88
- for( sal_uInt8 m = 0; m < nUCharOverread; ++m )
- {
- sal_Unicode cAnsi = nNextCh;
- while( 0xD == cAnsi )
- cAnsi = GetNextChar();
- while( 0xA == cAnsi )
- cAnsi = GetNextChar();
-
- if( '\\' == cAnsi &&
- '\'' == ( cAnsi = GetNextChar() ))
- // HexValue ueberlesen
- cAnsi = GetHexValue();
- nNextCh = GetNextChar();
- }
- bNextCh = false;
- aToken = sSave;
- bRTF_InTextRead = false;
- }
- else
- {
- nNextCh = '\\';
- bWeiter = false; // Abbrechen, String zusammen
- }
}
- break;
-
- default:
- rInput.SeekRel( -1 );
+ bNextCh = false;
+ aToken = sSave;
+ bRTF_InTextRead = false;
+ }
+ else
+ {
nNextCh = '\\';
bWeiter = false; // Abbrechen, String zusammen
- break;
}
+ break;
+
+ default:
+ rInput.SeekRel( -1 );
+ nNextCh = '\\';
+ bWeiter = false; // Abbrechen, String zusammen
+ break;
}
break;
case sal_Unicode(EOF):
- eState = SVPAR_ERROR;
- // weiter
+ eState = SVPAR_ERROR;
+ // weiter
case '{':
case '}':
bWeiter = false;
@@ -464,35 +473,40 @@
break;
default:
- if( nNextCh == cBreak || aStrBuffer.Len() >= MAX_STRING_LEN)
+ if( nNextCh == cBreak || aStrBuffer.getLength() >= MAX_STRING_LEN)
+ {
bWeiter = false;
+ }
else
{
- do {
+ do
+ {
// alle anderen Zeichen kommen in den Text
- aStrBuffer.Append(nNextCh);
+ aStrBuffer.append(nNextCh);
if (sal_Unicode(EOF) == (nNextCh = GetNextChar()))
{
- if (aStrBuffer.Len())
- aToken += aStrBuffer;
+ if (aStrBuffer.getLength())
+ aToken += aStrBuffer.makeStringAndClear();
return;
}
- } while
- (
- (RTF_ISALPHA(nNextCh) || RTF_ISDIGIT(nNextCh)) &&
- (aStrBuffer.Len() < MAX_STRING_LEN)
- );
+ }
+ while ( (RTF_ISALPHA(nNextCh) || RTF_ISDIGIT(nNextCh)) &&
+ (aStrBuffer.getLength() < MAX_STRING_LEN) );
bNextCh = false;
}
}
if( bWeiter && bNextCh )
+ {
nNextCh = GetNextChar();
+ }
}
- if (aStrBuffer.Len())
- aToken += aStrBuffer;
+ if (aStrBuffer.getLength())
+ {
+ aToken += aStrBuffer.makeStringAndClear();
+ }
}
@@ -500,24 +514,25 @@
void SvRTFParser::SkipGroup()
{
-short nBrackets=1;
-if (_inSkipGroup>0)
- return;
-_inSkipGroup++;
+ short nBrackets=1;
+
+ if (_inSkipGroup>0)
+ return;
+ _inSkipGroup++;
//#i16185# fecking \bin keyword
do
{
switch (nNextCh)
{
- case '{':
- ++nBrackets;
- break;
- case '}':
- if (!--nBrackets) {
- _inSkipGroup--;
- return;
- }
- break;
+ case '{':
+ ++nBrackets;
+ break;
+ case '}':
+ if (!--nBrackets) {
+ _inSkipGroup--;
+ return;
+ }
+ break;
}
int nToken = _GetNextToken();
if (nToken == RTF_BIN)
@@ -530,10 +545,13 @@
{
nNextCh = GetNextChar();
}
- } while (sal_Unicode(EOF) != nNextCh && IsParserWorking());
+ }
+ while (sal_Unicode(EOF) != nNextCh && IsParserWorking());
if( SVPAR_PENDING != eState && '}' != nNextCh )
+ {
eState = SVPAR_ERROR;
+ }
_inSkipGroup--;
}
@@ -558,11 +576,14 @@
AddRef();
Continue( 0 );
if( SVPAR_PENDING != eState )
+ {
ReleaseRef(); // dann brauchen wir den Parser nicht mehr!
+ }
}
else
+ {
eState = SVPAR_ERROR;
-
+ }
return eState;
}
@@ -572,8 +593,9 @@
// "Zeichensatz wurde geaendert." );
if( !nToken )
+ {
nToken = GetNextToken();
-
+ }
while( IsParserWorking() )
{
SaveState( nToken );
@@ -581,29 +603,32 @@
{
case '}':
if( nOpenBrakets )
+ {
goto NEXTTOKEN;
+ }
eState = SVPAR_ACCEPTED;
break;
case '{':
// eine unbekannte Gruppe ?
+ if( RTF_IGNOREFLAG != GetNextToken() )
{
- if( RTF_IGNOREFLAG != GetNextToken() )
- nToken = SkipToken( -1 );
- else if( RTF_UNKNOWNCONTROL != GetNextToken() )
- nToken = SkipToken( -2 );
- else
- {
- // gleich herausfiltern
- ReadUnknownData();
- nToken = GetNextToken();
- if( '}' != nToken )
- eState = SVPAR_ERROR;
- break; // auf zum naechsten Token!!
- }
+ nToken = SkipToken( -1 );
+ }
+ else if( RTF_UNKNOWNCONTROL != GetNextToken() )
+ {
+ nToken = SkipToken( -2 );
+ }
+ else
+ {
+ // gleich herausfiltern
+ ReadUnknownData();
+ nToken = GetNextToken();
+ if( '}' != nToken )
+ eState = SVPAR_ERROR;
+ break; // auf zum naechsten Token!!
}
goto NEXTTOKEN;
-
case RTF_UNKNOWNCONTROL:
break; // unbekannte Token ueberspringen
case RTF_NEXTTYPE:
@@ -629,12 +654,16 @@
break;
}
if( IsParserWorking() )
+ {
SaveState( 0 ); // bis hierhin abgearbeitet,
// weiter mit neuem Token!
+ }
nToken = GetNextToken();
}
if( SVPAR_ACCEPTED == eState && 0 < nOpenBrakets )
+ {
eState = SVPAR_ERROR;
+ }
}
void SvRTFParser::SetEncoding( rtl_TextEncoding eEnc )
@@ -643,7 +672,9 @@
eEnc = GetCodeSet();
if (!aParserStates.empty())
+ {
aParserStates.top().eCodeSet = eEnc;
+ }
SetSrcEncoding(eEnc);
}
diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx
index 5f2bcba..8ed4b61 100644
--- a/svtools/source/svrtf/svparser.cxx
+++ b/svtools/source/svrtf/svparser.cxx
@@ -27,12 +27,12 @@
// Struktur, um sich die akt. Daten zumerken
struct SvParser_Impl
{
- String aToken; // gescanntes Token
- sal_uLong nFilePos; // akt. Position im Stream
- sal_uLong nlLineNr; // akt. Zeilen Nummer
- sal_uLong nlLinePos; // akt. Spalten Nummer
+ OUString aToken; // gescanntes Token
+ sal_uLong nFilePos; // akt. Position im Stream
+ sal_uLong nlLineNr; // akt. Zeilen Nummer
+ sal_uLong nlLinePos; // akt. Spalten Nummer
long nTokenValue; // zusaetzlicher Wert (RTF)
- sal_Bool bTokenHasValue; // indicates whether nTokenValue is valid
+ sal_Bool bTokenHasValue; // indicates whether nTokenValue is valid
int nToken; // akt. Token
sal_Unicode nNextCh; // akt. Zeichen
@@ -382,7 +382,7 @@
if( !nTokenStackPos )
{
- aToken.Erase(); // Token-Buffer loeschen
+ aToken = ""; // Token-Buffer loeschen
nTokenValue = -1; // Kennzeichen fuer kein Value gelesen
bTokenHasValue = false;
diff --git a/sw/source/filter/html/htmlbas.cxx b/sw/source/filter/html/htmlbas.cxx
index 44fbb39..276e6b6 100644
--- a/sw/source/filter/html/htmlbas.cxx
+++ b/sw/source/filter/html/htmlbas.cxx
@@ -63,7 +63,7 @@
ParseScriptOptions( aScriptType, sBaseURL, eScriptLang, aScriptURL,
aBasicLib, aBasicModule );
- if( aScriptURL.Len() )
+ if( !aScriptURL.isEmpty() )
{
// Den Inhalt des Script-Tags ignorieren
bIgnoreRawData = sal_True;
@@ -96,13 +96,13 @@
(SwScriptFieldType*)pDoc->GetSysFldType( RES_SCRIPTFLD );
SwScriptField aFld( pType, aScriptType,
- aScriptURL.Len() ? aScriptURL : aScriptSource,
- aScriptURL.Len()!=0 );
+ !aScriptURL.isEmpty() ? aScriptURL : aScriptSource,
+ !aScriptURL.isEmpty() );
InsertAttr( SwFmtFld( aFld ) );
}
SwDocShell *pDocSh = pDoc->GetDocShell();
- if( aScriptSource.Len() && pDocSh &&
+ if( !aScriptSource.isEmpty() && pDocSh &&
bInsIntoBasic && IsNewDoc() )
{
// Fuer JavaScript und StarBasic noch ein Basic-Modul anlegen
@@ -111,7 +111,7 @@
// get library name
OUString aLibName;
- if( aBasicLib.Len() )
+ if( !aBasicLib.isEmpty() )
aLibName = aBasicLib;
else
aLibName = OUString("Standard");
@@ -136,13 +136,13 @@
if ( xModLib.is() )
{
- if( !aBasicModule.Len() )
+ if( aBasicModule.isEmpty() )
{
// create module name
sal_Bool bFound = sal_True;
while( bFound )
{
- aBasicModule.AssignAscii( "Modul" );
+ aBasicModule = "Modul";
aBasicModule += OUString::number( (sal_Int32)(++nSBModuleCnt) );
bFound = xModLib->hasByName( OUString( aBasicModule ) );
}
@@ -172,56 +172,54 @@
}
}
- aScriptSource.Erase();
- aScriptType.Erase();
- aScriptURL.Erase();
+ aScriptSource = "";
+ aScriptType = "";
+ aScriptURL = "";
- aBasicLib.Erase();
- aBasicModule.Erase();
+ aBasicLib = "";
+ aBasicModule = "";
}
void SwHTMLParser::AddScriptSource()
{
// Hier merken wir und nur ein par Strings
- if( aToken.Len() > 2 &&
- (HTML_SL_STARBASIC==eScriptLang && aToken.GetChar( 0 ) == '\'') )
+ if( aToken.getLength() > 2 &&
+ (HTML_SL_STARBASIC==eScriptLang && aToken[ 0 ] == '\'') )
{
- xub_StrLen nPos = STRING_NOTFOUND;
- if( !aBasicLib.Len() )
+ sal_Int32 nPos = -1;
+ if( aBasicLib.isEmpty() )
{
- nPos = aToken.SearchAscii( OOO_STRING_SVTOOLS_HTML_SB_library );
- if( nPos != STRING_NOTFOUND )
+ nPos = aToken.indexOf( OOO_STRING_SVTOOLS_HTML_SB_library );
+ if( nPos >= 0 )
{
- aBasicLib =
- aToken.Copy( nPos + sizeof(OOO_STRING_SVTOOLS_HTML_SB_library) - 1 );
+ aBasicLib = aToken.copy( nPos + sizeof(OOO_STRING_SVTOOLS_HTML_SB_library) - 1 );
aBasicLib = comphelper::string::strip(aBasicLib, ' ');
}
}
- if( !aBasicModule.Len() && nPos==STRING_NOTFOUND )
+ if( aBasicModule.isEmpty() && nPos== -1 )
{
- nPos = aToken.SearchAscii( OOO_STRING_SVTOOLS_HTML_SB_module );
- if( nPos != STRING_NOTFOUND )
+ nPos = aToken.indexOf( OOO_STRING_SVTOOLS_HTML_SB_module );
+ if( nPos >= 0 )
{
- aBasicModule =
- aToken.Copy( nPos + sizeof(OOO_STRING_SVTOOLS_HTML_SB_module) - 1 );
+ aBasicModule = aToken.copy( nPos + sizeof(OOO_STRING_SVTOOLS_HTML_SB_module) - 1 );
aBasicModule = comphelper::string::strip(aBasicModule, ' ');
}
}
- if( nPos==STRING_NOTFOUND )
+ if( nPos== -1 )
{
- if( aScriptSource.Len() )
- aScriptSource += '\n';
- (aScriptSource += aToken);
+ if( !aScriptSource.isEmpty() )
+ aScriptSource += "\n";
+ aScriptSource += aToken;
}
}
- else if( aScriptSource.Len() || aToken.Len() )
+ else if( !aScriptSource.isEmpty() || !aToken.isEmpty() )
{
// Leerzeilen am Anfang werden ignoriert
- if( aScriptSource.Len() )
+ if( !aScriptSource.isEmpty() )
{
- aScriptSource += '\n';
+ aScriptSource += "\n";
}
else
{
diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx
index 6423ce5..73ccb27 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -1716,10 +1716,10 @@
{
bIgnoreRawData = sal_False;
- if( aStyleSource.Len() )
+ if( !aStyleSource.isEmpty() )
{
pCSS1Parser->ParseStyleSheet( aStyleSource );
- aStyleSource.Erase();
+ aStyleSource = "";
}
}
diff --git a/sw/source/filter/html/htmldraw.cxx b/sw/source/filter/html/htmldraw.cxx
index d098988..5b00977 100644
--- a/sw/source/filter/html/htmldraw.cxx
+++ b/sw/source/filter/html/htmldraw.cxx
@@ -261,7 +261,7 @@
{
OSL_ENSURE( !pMarquee, "Marquee in Marquee???" );
- aContents.Erase();
+ aContents = "";
String aId, aStyle, aClass;
@@ -312,7 +312,7 @@
case HTML_O_LOOP:
if( rOption.GetString().
- EqualsIgnoreCaseAscii(OOO_STRING_SVTOOLS_HTML_LOOP_infinite) )
+ equalsIgnoreAsciiCase(OOO_STRING_SVTOOLS_HTML_LOOP_infinite) )
{
nCount = 0;
}
@@ -334,7 +334,7 @@
case HTML_O_WIDTH:
// erstmal nur als Pixelwerte merken!
nWidth = rOption.GetNumber();
- bPrcWidth = rOption.GetString().Search('%') != STRING_NOTFOUND;
+ bPrcWidth = rOption.GetString().indexOf('%') >= 0;
if( bPrcWidth && nWidth>100 )
nWidth = 100;
break;
@@ -342,7 +342,7 @@
case HTML_O_HEIGHT:
// erstmal nur als Pixelwerte merken!
nHeight = rOption.GetNumber();
- if( rOption.GetString().Search('%') != STRING_NOTFOUND )
+ if( rOption.GetString().indexOf('%') >= 0)
nHeight = 0;
break;
@@ -572,7 +572,7 @@
((SdrTextObj*)pMarquee)->FitFrameToTextSize();
}
- aContents.Erase();
+ aContents = "";
pMarquee = 0;
}
diff --git a/sw/source/filter/html/htmlfld.cxx b/sw/source/filter/html/htmlfld.cxx
index 3213bfc..6c960d9 100644
--- a/sw/source/filter/html/htmlfld.cxx
+++ b/sw/source/filter/html/htmlfld.cxx
@@ -574,7 +574,7 @@
}
bInField = sal_False;
- aContents.Erase();
+ aContents = "";
}
void SwHTMLParser::InsertFieldText()
@@ -588,18 +588,18 @@
void SwHTMLParser::InsertCommentText( const sal_Char *pTag )
{
- sal_Bool bEmpty = aContents.Len() == 0;
+ sal_Bool bEmpty = aContents.isEmpty();
if( !bEmpty )
- aContents += '\n';
+ aContents += "\n";
aContents += aToken;
if( bEmpty && pTag )
{
String aTmp( aContents );
- aContents.AssignAscii( "HTML: <" );
- aContents.AppendAscii( pTag );
- aContents.Append( '>' );
- aContents.Append( aTmp );
+ aContents = "HTML: <" ;
+ aContents += OUString( pTag, strlen(pTag), RTL_TEXTENCODING_ASCII_US );
+ aContents += ">";
+ aContents += aTmp;
}
}
diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx
index ec85ccc..90ef09c 100644
--- a/sw/source/filter/html/htmlform.cxx
+++ b/sw/source/filter/html/htmlform.cxx
@@ -2240,7 +2240,7 @@
default:
rText += '<';
rText += sSaveToken;
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
{
rText += ' ';
rText += aToken;
@@ -2617,13 +2617,13 @@
{
String& rText = pFormImpl->GetStringList().back();
- if( aToken.Len() && ' '==aToken.GetChar( 0 ) )
+ if( !aToken.isEmpty() && ' '==aToken[ 0 ] )
{
xub_StrLen nLen = rText.Len();
if( !nLen || ' '==rText.GetChar( nLen-1 ))
- aToken.Erase( 0, 1 );
+ aToken = aToken.copy(1);
}
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
rText += aToken;
}
}
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx
index de89a59..2b1efde 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -309,7 +309,8 @@
void SwHTMLParser::InsertImage()
{
// und jetzt auswerten
- String sGrfNm, sAltNm, aId, aClass, aStyle, aMap, sHTMLGrfName;
+ OUString sGrfNm;
+ OUString sAltNm, aId, aClass, aStyle, aMap, sHTMLGrfName;
sal_Int16 eVertOri = text::VertOrientation::TOP;
sal_Int16 eHoriOri = text::HoriOrientation::NONE;
long nWidth=0, nHeight=0;
@@ -358,14 +359,14 @@
case HTML_O_WIDTH:
// erstmal nur als Pixelwerte merken!
nWidth = rOption.GetNumber();
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
if( bPrcWidth && nWidth>100 )
nWidth = 100;
break;
case HTML_O_HEIGHT:
// erstmal nur als Pixelwerte merken!
nHeight = rOption.GetNumber();
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
if( bPrcHeight && nHeight>100 )
nHeight = 100;
break;
@@ -425,7 +426,7 @@
}
}
- if( !sGrfNm.Len() )
+ if( sGrfNm.isEmpty() )
return;
// Wenn wir in einer Numerierung stehen und der Absatz noch leer und
@@ -433,7 +434,7 @@
// einer Bullet-Liste
if( !pPam->GetPoint()->nContent.GetIndex() &&
GetNumInfo().GetDepth() > 0 && GetNumInfo().GetDepth() <= MAXLEVEL &&
- aBulletGrfs[GetNumInfo().GetDepth()-1].Len() &&
+ !aBulletGrfs[GetNumInfo().GetDepth()-1].isEmpty() &&
aBulletGrfs[GetNumInfo().GetDepth()-1]==sGrfNm )
{
SwTxtNode* pTxtNode = pPam->GetNode()->GetTxtNode();
@@ -626,16 +627,16 @@
// Image-Map setzen
aMap = comphelper::string::stripEnd(aMap, ' ');
- if( aMap.Len() )
+ if( !aMap.isEmpty() )
{
// Da wir nur lokale Image-Maps kennen nehmen wireinfach alles
// hinter dem # als Namen
- xub_StrLen nPos = aMap.Search( '#' );
+ sal_Int32 nPos = aMap.indexOf( '#' );
String aName;
- if ( STRING_NOTFOUND==nPos )
+ if ( nPos < 0 )
aName = aMap ;
else
- aName = aMap.Copy(nPos+1);
+ aName = aMap.copy(nPos+1);
ImageMap *pImgMap = FindImageMap( aName );
if( pImgMap )
@@ -699,7 +700,7 @@
SwGrfNode *pGrfNd = pDoc->GetNodes()[ pFlyFmt->GetCntnt().GetCntntIdx()
->GetIndex()+1 ]->GetGrfNode();
- if( sHTMLGrfName.Len() )
+ if( !sHTMLGrfName.isEmpty() )
{
pFlyFmt->SetName( sHTMLGrfName );
@@ -711,7 +712,7 @@
}
}
- if( sAltNm.Len() )
+ if( !sAltNm.isEmpty() )
pGrfNd->SetTitle( sAltNm );
if( bSetTwipSize )
@@ -784,7 +785,7 @@
// Ggf. Frames anlegen und Auto-gebundenen Rahmen registrieren
RegisterFlyFrm( pFlyFmt );
- if( aId.Len() )
+ if( !aId.isEmpty() )
InsertBookmark( aId );
}
diff --git a/sw/source/filter/html/htmlnum.cxx b/sw/source/filter/html/htmlnum.cxx
index 3555f87..c564b838 100644
--- a/sw/source/filter/html/htmlnum.cxx
+++ b/sw/source/filter/html/htmlnum.cxx
@@ -163,7 +163,8 @@
}
// und es ggf. durch die Optionen veraendern
- String aId, aStyle, aClass, aBulletSrc, aLang, aDir;
+ String aId, aStyle, aClass, aLang, aDir;
+ OUString aBulletSrc;
sal_Int16 eVertOri = text::VertOrientation::NONE;
sal_uInt16 nWidth=USHRT_MAX, nHeight=USHRT_MAX;
const HTMLOptions& rHTMLOptions = GetOptions();
@@ -176,13 +177,13 @@
aId = rOption.GetString();
break;
case HTML_O_TYPE:
- if( bNewNumFmt && rOption.GetString().Len() )
+ if( bNewNumFmt && !rOption.GetString().isEmpty() )
{
switch( nToken )
{
case HTML_ORDERLIST_ON:
bChangeNumFmt = sal_True;
- switch( rOption.GetString().GetChar(0) )
+ switch( rOption.GetString()[0] )
{
case 'A': aNumFmt.SetNumberingType(SVX_NUM_CHARS_UPPER_LETTER); break;
case 'a': aNumFmt.SetNumberingType(SVX_NUM_CHARS_LOWER_LETTER); break;
@@ -248,7 +249,7 @@
}
}
- if( aBulletSrc.Len() )
+ if( !aBulletSrc.isEmpty() )
{
// Eine Bullet-Liste mit Grafiken
aNumFmt.SetNumberingType(SVX_NUM_BITMAP);
@@ -279,8 +280,9 @@
bChangeNumFmt = sal_True;
}
else
- aBulletGrfs[nLevel].Erase();
-
+ {
+ aBulletGrfs[nLevel] = "";
+ }
// den aktuellen Absatz erst einmal nicht numerieren
{
sal_uInt8 nLvl = nLevel;
diff --git a/sw/source/filter/html/htmlplug.cxx b/sw/source/filter/html/htmlplug.cxx
index 6e5235f..e0818fc 100644
--- a/sw/source/filter/html/htmlplug.cxx
+++ b/sw/source/filter/html/htmlplug.cxx
@@ -343,14 +343,14 @@
case HTML_O_WIDTH:
if( USHRT_MAX==aSize.Width() )
{
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
aSize.Width() = (long)rOption.GetNumber();
}
break;
case HTML_O_HEIGHT:
if( USHRT_MAX==aSize.Height() )
{
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
aSize.Height() = (long)rOption.GetNumber();
}
break;
@@ -363,9 +363,9 @@
aSpace.Height() = (long)rOption.GetNumber();
break;
case HTML_O_UNKNOWN:
- if( rOption.GetTokenString().EqualsIgnoreCaseAscii( OOO_STRING_SW_HTML_O_Hidden ) )
+ if( rOption.GetTokenString().equalsIgnoreAsciiCase( OOO_STRING_SW_HTML_O_Hidden ) )
bHidden =
- !rOption.GetString().EqualsIgnoreCaseAscii( sHTML_O_Hidden_False );
+ !rOption.GetString().equalsIgnoreAsciiCase( sHTML_O_Hidden_False );
break;
}
@@ -533,11 +533,11 @@
aStandBy = rOption.GetString();
break;
case HTML_O_WIDTH:
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
aSize.Width() = (long)rOption.GetNumber();
break;
case HTML_O_HEIGHT:
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
aSize.Height() = (long)rOption.GetNumber();
break;
case HTML_O_ALIGN:
@@ -697,11 +697,11 @@
eHoriOri = rOption.GetEnum( aHTMLImgHAlignTable, eHoriOri );
break;
case HTML_O_WIDTH:
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
aSize.Width() = (long)rOption.GetNumber();
break;
case HTML_O_HEIGHT:
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
aSize.Height() = (long)rOption.GetNumber();
break;
case HTML_O_HSPACE:
@@ -848,11 +848,11 @@
eHoriOri = rOption.GetEnum( aHTMLImgHAlignTable, eHoriOri );
break;
case HTML_O_WIDTH:
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
aSize.Width() = (long)rOption.GetNumber();
break;
case HTML_O_HEIGHT:
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
aSize.Height() = (long)rOption.GetNumber();
break;
case HTML_O_HSPACE:
diff --git a/sw/source/filter/html/htmlsect.cxx b/sw/source/filter/html/htmlsect.cxx
index b9e76da..3228101 100644
--- a/sw/source/filter/html/htmlsect.cxx
+++ b/sw/source/filter/html/htmlsect.cxx
@@ -571,7 +571,7 @@
break;
case HTML_O_WIDTH:
nWidth = rOption.GetNumber();
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
if( bPrcWidth && nWidth>100 )
nWidth = 100;
break;
diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx
index b0b96f2..f733c06 100644
--- a/sw/source/filter/html/htmltab.cxx
+++ b/sw/source/filter/html/htmltab.cxx
@@ -3222,19 +3222,19 @@
break;
case HTML_O_WIDTH:
nWidth = (sal_uInt16)rOption.GetNumber(); // nur fuer Netscape
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
if( bPrcWidth && nWidth>100 )
nWidth = 100;
break;
case HTML_O_HEIGHT:
nHeight = (sal_uInt16)rOption.GetNumber(); // nur fuer Netscape
- if( rOption.GetString().Search('%') != STRING_NOTFOUND)
+ if( rOption.GetString().indexOf('%') >= 0)
nHeight = 0; // keine %-Angaben beruecksichtigen
break;
case HTML_O_BGCOLOR:
// Leere BGCOLOR bei <TABLE>, <TR> und <TD>/<TH> wie Netscape
// ignorieren, bei allen anderen Tags *wirklich* nicht.
- if( rOption.GetString().Len() )
+ if( !rOption.GetString().isEmpty() )
{
rOption.GetColor( aBGColor );
bBGColor = sal_True;
@@ -4095,8 +4095,8 @@
case HTML_TEXTTOKEN:
// keine Section fuer einen leeren String anlegen
- if( !pSaveStruct->IsInSection() && 1==aToken.Len() &&
- ' '==aToken.GetChar(0) )
+ if( !pSaveStruct->IsInSection() && 1==aToken.getLength() &&
+ ' '==aToken[0] )
break;
default:
if( !pSaveStruct->IsInSection() )
@@ -4275,7 +4275,7 @@
case HTML_O_BGCOLOR:
// Leere BGCOLOR bei <TABLE>, <TR> und <TD>/<TH> wie Netsc.
// ignorieren, bei allen anderen Tags *wirklich* nicht.
- if( rOption.GetString().Len() )
+ if( !rOption.GetString().isEmpty() )
{
rOption.GetColor( aBGColor );
bBGColor = sal_True;
@@ -4392,7 +4392,7 @@
case HTML_TEXTTOKEN:
if( (pCurTable->GetContext() ||
!pCurTable->HasParentSection()) &&
- 1==aToken.Len() && ' '==aToken.GetChar(0) )
+ 1==aToken.getLength() && ' '==aToken[0] )
break;
default:
pCurTable->MakeParentContents();
@@ -4553,7 +4553,7 @@
// Blank-Strings sind Folge von CR+LF und kein Text
if( (pCurTable->GetContext() ||
!pCurTable->HasParentSection()) &&
- 1==aToken.Len() && ' '==aToken.GetChar(0) )
+ 1==aToken.getLength() && ' '==aToken[0] )
break;
default:
pCurTable->MakeParentContents();
@@ -4657,7 +4657,7 @@
case HTML_O_WIDTH:
pSaveStruct->nColGrpWidth = (sal_uInt16)rOption.GetNumber();
pSaveStruct->bRelColGrpWidth =
- (rOption.GetString().Search('*') != STRING_NOTFOUND);
+ (rOption.GetString().indexOf('*') >= 0);
break;
case HTML_O_ALIGN:
pSaveStruct->eColGrpAdjust =
@@ -4740,7 +4740,7 @@
case HTML_O_WIDTH:
nColWidth = (sal_uInt16)rOption.GetNumber();
bRelColWidth =
- (rOption.GetString().Search('*') != STRING_NOTFOUND);
+ (rOption.GetString().indexOf('*') >= 0);
break;
case HTML_O_ALIGN:
eColAdjust =
@@ -4770,7 +4770,7 @@
case HTML_TEXTTOKEN:
if( (pCurTable->GetContext() ||
!pCurTable->HasParentSection()) &&
- 1==aToken.Len() && ' '==aToken.GetChar(0) )
+ 1==aToken.getLength() && ' '==aToken[0] )
break;
default:
pCurTable->MakeParentContents();
@@ -4876,7 +4876,7 @@
const HTMLOption& rOption = rHTMLOptions[--i];
if( HTML_O_ALIGN == rOption.GetToken() )
{
- if( rOption.GetString().EqualsIgnoreCaseAscii(OOO_STRING_SVTOOLS_HTML_VA_bottom))
+ if( rOption.GetString().equalsIgnoreAsciiCase(OOO_STRING_SVTOOLS_HTML_VA_bottom))
bTop = sal_False;
}
}
@@ -5112,13 +5112,13 @@
break;
case HTML_O_WIDTH:
nWidth = (sal_uInt16)rOption.GetNumber();
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
if( bPrcWidth && nWidth>100 )
nWidth = 100;
break;
case HTML_O_HEIGHT:
nHeight = (sal_uInt16)rOption.GetNumber();
- if( rOption.GetString().Search('%') != STRING_NOTFOUND )
+ if( rOption.GetString().indexOf('%') >= 0 )
nHeight = 0; // keine %-Anagben benutzen!!!
break;
case HTML_O_CELLPADDING:
@@ -5142,8 +5142,8 @@
break;
case HTML_O_BORDER:
// BORDER und BORDER=BORDER wie BORDER=1 behandeln
- if( rOption.GetString().Len() &&
- !rOption.GetString().EqualsIgnoreCaseAscii(OOO_STRING_SVTOOLS_HTML_O_border) )
+ if( !rOption.GetString().isEmpty() &&
+ !rOption.GetString().equalsIgnoreAsciiCase(OOO_STRING_SVTOOLS_HTML_O_border) )
nBorder = (sal_uInt16)rOption.GetNumber();
else
nBorder = 1;
@@ -5164,7 +5164,7 @@
case HTML_O_BGCOLOR:
// Leere BGCOLOR bei <TABLE>, <TR> und <TD>/<TH> wie Netscape
// ignorieren, bei allen anderen Tags *wirklich* nicht.
- if( rOption.GetString().Len() )
+ if( !rOption.GetString().isEmpty() )
{
rOption.GetColor( aBGColor );
bBGColor = sal_True;
@@ -5342,7 +5342,7 @@
// Blank-Strings sind u. U. eine Folge von CR+LF und kein Text
if( (pCurTable->GetContext() ||
!pCurTable->HasParentSection()) &&
- 1==aToken.Len() && ' '==aToken.GetChar(0) )
+ 1==aToken.getLength() && ' '==aToken[0] )
break;
default:
pCurTable->MakeParentContents();
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 11fe376..fd593c9 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -370,19 +370,19 @@
if( pMed )
{
sJmpMark = pMed->GetURLObject().GetMark();
- if( sJmpMark.Len() )
+ if( !sJmpMark.isEmpty() )
{
eJumpTo = JUMPTO_MARK;
xub_StrLen nLastPos, nPos = 0;
- while( STRING_NOTFOUND != ( nLastPos =
- sJmpMark.Search( cMarkSeparator, nPos + 1 )) )
+ while(( nLastPos =
+ sJmpMark.indexOf( cMarkSeparator, nPos + 1 )) >= 0 )
nPos = nLastPos;
String sCmp;
if (nPos)
{
sCmp = comphelper::string::remove(
- sJmpMark.Copy(nPos + 1), ' ');
+ sJmpMark.copy(nPos + 1), ' ');
}
if( sCmp.Len() )
@@ -405,8 +405,8 @@
else
nPos = STRING_LEN;
- sJmpMark.Erase( nPos );
- if( !sJmpMark.Len() )
+ sJmpMark = sJmpMark.copy(0, nPos );
+ if( sJmpMark.isEmpty() )
eJumpTo = JUMPTO_NONE;
}
}
@@ -640,7 +640,7 @@
{
// noch die letzten Attribute setzen
{
- if( aScriptSource.Len() )
+ if( !aScriptSource.isEmpty() )
{
SwScriptFieldType *pType =
(SwScriptFieldType*)pDoc->GetSysFldType( RES_SCRIPTFLD );
@@ -989,7 +989,7 @@
switch( nToken )
{
case HTML_TITLE_OFF:
- if( IsNewDoc() && sTitle.Len() )
+ if( IsNewDoc() && !sTitle.isEmpty() )
{
if( pDoc->GetDocShell() ) {
uno::Reference<document::XDocumentPropertiesSupplier>
@@ -1006,15 +1006,15 @@
}
}
bInTitle = sal_False;
- sTitle.Erase();
+ sTitle = "";
break;
case HTML_NONBREAKSPACE:
- sTitle += ' ';
+ sTitle += " ";
break;
case HTML_SOFTHYPH:
- sTitle += '-';
+ sTitle += "-";
break;
case HTML_TEXTTOKEN:
@@ -1022,16 +1022,16 @@
break;
default:
- sTitle += '<';
+ sTitle += "<";
if( (HTML_TOKEN_ONOFF & nToken) && (1 & nToken) )
- sTitle += '/';
+ sTitle += "/";
sTitle += sSaveToken;
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
{
- sTitle += ' ';
+ sTitle += " ";
sTitle += aToken;
}
- sTitle += '>';
+ sTitle += ">";
break;
}
@@ -1072,7 +1072,7 @@
case HTML_NOEMBED_OFF:
aContents = convertLineEnd(aContents, GetSystemLineEnd());
InsertComment( aContents, OOO_STRING_SVTOOLS_HTML_noembed );
- aContents.Erase();
+ aContents = "";
bCallNextToken = sal_False;
bInNoEmbed = sal_False;
break;
@@ -1213,11 +1213,11 @@
}
return;
}
- else if( aUnknownToken.Len() )
+ else if( !aUnknownToken.isEmpty() )
{
// Paste content of unknown tags.
// (but surely if we are not in the header section) fdo#36080 fdo#34666
- if (aToken.Len() > 0 && !IsInHeader() )
+ if (!aToken.isEmpty() && !IsInHeader() )
{
if( !bDocInitalized )
DocumentDetected();
@@ -1237,18 +1237,18 @@
switch( nToken )
{
case HTML_UNKNOWNCONTROL_OFF:
- if( aUnknownToken.CompareTo(sSaveToken) != COMPARE_EQUAL )
+ if( !aUnknownToken.startsWith(sSaveToken))
return;
case HTML_FRAMESET_ON:
case HTML_HEAD_OFF:
case HTML_BODY_ON:
case HTML_IMAGE: // Don't know why Netscape acts this way.
- aUnknownToken.Erase();
+ aUnknownToken = "";
break;
case HTML_TEXTTOKEN:
return;
default:
- aUnknownToken.Erase();
+ aUnknownToken = "";
break;
}
}
@@ -1257,10 +1257,10 @@
switch( nToken )
{
case HTML_BODY_ON:
- if( aStyleSource.Len() )
+ if( !aStyleSource.isEmpty() )
{
pCSS1Parser->ParseStyleSheet( aStyleSource );
- aStyleSource.Erase();
+ aStyleSource = "";
}
if( IsNewDoc() )
{
@@ -1378,8 +1378,8 @@
}
else if( IsReadStyle() )
{
- if( aStyleSource.Len() )
- aStyleSource += '\n';
+ if( !aStyleSource.isEmpty() )
+ aStyleSource += "\n";
aStyleSource += aToken;
}
}
@@ -1450,7 +1450,7 @@
case HTML_TEXTTOKEN:
// insert string without spanning attributes at the end.
- if( aToken.Len() && ' '==aToken.GetChar(0) && !IsReadPRE() )
+ if( !aToken.isEmpty() && ' '==aToken[0] && !IsReadPRE() )
{
xub_StrLen nPos = pPam->GetPoint()->nContent.GetIndex();
if( nPos )
@@ -1459,19 +1459,19 @@
pPam->GetPoint()->nNode.GetNode().GetTxtNode()->GetTxt();
sal_Unicode cLast = rText.GetChar(--nPos);
if( ' ' == cLast || '\x0a' == cLast)
- aToken.Erase(0,1);
+ aToken = aToken.copy(1);
}
else
- aToken.Erase(0,1);
+ aToken = aToken.copy(1);
- if( !aToken.Len() )
+ if( aToken.isEmpty() )
{
bUpperSpace = bUpperSpaceSave;
break;
}
}
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
{
if( !bDocInitalized )
DocumentDetected();
@@ -1885,10 +1885,10 @@
break;
case HTML_HEAD_OFF:
- if( aStyleSource.Len() )
+ if( !aStyleSource.isEmpty() )
{
pCSS1Parser->ParseStyleSheet( aStyleSource );
- aStyleSource.Erase();
+ aStyleSource = "";
}
break;
@@ -1944,15 +1944,15 @@
break;
case HTML_COMMENT:
- if( ( aToken.Len() > 5 ) && ( ! bIgnoreHTMLComments ) )
+ if( ( aToken.getLength() > 5 ) && ( ! bIgnoreHTMLComments ) )
{
// insert as Post-It
// If there are no space characters right behind
// the <!-- and on front of the -->, leave the comment untouched.
- if( ' ' == aToken.GetChar( 3 ) &&
- ' ' == aToken.GetChar( aToken.Len()-3 ) )
+ if( ' ' == aToken[ 3 ] &&
+ ' ' == aToken[ aToken.getLength()-3 ] )
{
- String aComment( aToken.Copy( 3, aToken.Len()-5 ) );
+ String aComment( aToken.copy( 3, aToken.getLength()-5 ) );
InsertComment(comphelper::string::strip(aComment, ' '));
}
else
@@ -2010,9 +2010,9 @@
// does not start with a '!'.
// (but judging from the code, also if does not start with a '%')
// (and also if we're not somewhere we consider PRE)
- if( IsInHeader() && !IsReadPRE() && !aUnknownToken.Len() &&
- sSaveToken.Len() && '!' != sSaveToken.GetChar(0) &&
- '%' != sSaveToken.GetChar(0) )
+ if( IsInHeader() && !IsReadPRE() && aUnknownToken.isEmpty() &&
+ !sSaveToken.isEmpty() && '!' != sSaveToken[0] &&
+ '%' != sSaveToken[0] )
aUnknownToken = sSaveToken;
// no break
@@ -2030,7 +2030,7 @@
if( (HTML_TOKEN_ONOFF & nToken) != 0 && (1 & nToken) != 0 )
aComment += '/';
aComment += sSaveToken;
- if( aToken.Len() )
+ if( !aToken.isEmpty() )
{
UnescapeToken();
(aComment += ' ') += aToken;
@@ -3673,11 +3673,11 @@
switch( rOption.GetToken() )
{
case HTML_O_SIZE:
- if( HTML_FONT_ON==nToken && rOption.GetString().Len() )
+ if( HTML_FONT_ON==nToken && !rOption.GetString().isEmpty() )
{
sal_Int32 nSSize;
- if( '+' == rOption.GetString().GetChar(0) ||
- '-' == rOption.GetString().GetChar(0) )
+ if( '+' == rOption.GetString()[0] ||
+ '-' == rOption.GetString()[0] )
nSSize = nBaseSize + rOption.GetSNumber();
else
nSSize = (sal_Int32)rOption.GetNumber();
@@ -4874,12 +4874,12 @@
break;
case HTML_O_WIDTH:
// erstmal nur als Pixelwerte merken!
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
aSize.Width() = (long)rOption.GetNumber();
break;
case HTML_O_HEIGHT:
// erstmal nur als Pixelwerte merken!
- bPrcHeight = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcHeight = (rOption.GetString().indexOf('%') >= 0);
aSize.Height() = (long)rOption.GetNumber();
break;
case HTML_O_SIZE:
@@ -5257,7 +5257,7 @@
nSize = (sal_uInt16)rOption.GetNumber();
break;
case HTML_O_WIDTH:
- bPrcWidth = (rOption.GetString().Search('%') != STRING_NOTFOUND);
+ bPrcWidth = (rOption.GetString().indexOf('%') >= 0);
nWidth = (sal_uInt16)rOption.GetNumber();
if( bPrcWidth && nWidth>=100 )
{
diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx
index d3e0ab4..8f751db 100644
--- a/sw/source/filter/html/swhtml.hxx
+++ b/sw/source/filter/html/swhtml.hxx
@@ -352,20 +352,20 @@
friend class _CellSaveStruct;
friend class _CaptionSaveStruct;
- String aPathToFile;
- String sBaseURL;
- String sSaveBaseURL;
- String aBasicLib;
- String aBasicModule;
- String aScriptSource; // Inhalt des aktuellen Script-Blocks
- String aScriptType; // Type des gelesenen Scripts (StarBasic/VB/JAVA)
- String aScriptURL; // URL eines Scripts
- String aStyleSource; // Inhalt des aktuellen Style-Sheets
- String aContents; // Text des akteullen Marquee, Feldes etc.
- String sTitle;
- String aUnknownToken; // ein gestartetes unbekanntes Token
- String aBulletGrfs[MAXLEVEL];
- String sJmpMark;
+ OUString aPathToFile;
+ OUString sBaseURL;
+ OUString sSaveBaseURL;
+ OUString aBasicLib;
+ OUString aBasicModule;
+ OUString aScriptSource; // Inhalt des aktuellen Script-Blocks
+ OUString aScriptType; // Type des gelesenen Scripts (StarBasic/VB/JAVA)
+ OUString aScriptURL; // URL eines Scripts
+ OUString aStyleSource; // Inhalt des aktuellen Style-Sheets
+ OUString aContents; // Text des akteullen Marquee, Feldes etc.
+ OUString sTitle;
+ OUString aUnknownToken; // ein gestartetes unbekanntes Token
+ OUString aBulletGrfs[MAXLEVEL];
+ OUString sJmpMark;
std::vector<sal_uInt16> aBaseFontStack; // Stack fuer <BASEFONT>
// Bit 0-2: Fontgroesse (1-7)
--
To view, visit https://gerrit.libreoffice.org/4253
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I65d84991291fb2ade03132d424ed833a89bbc430
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Norbert Thiebaud <nthiebaud at gmail.com>
More information about the LibreOffice
mailing list