diff options
author | Matteo Casalin <matteo.casalin@yahoo.com> | 2013-09-03 10:13:07 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-09-03 13:08:22 +0000 |
commit | 2564c5bbe4acd3f29530b056cef3f6e8ecb6194c (patch) | |
tree | 52bd2e53f4bba6bddc3d6bdfd93fb98161ca1480 /sw | |
parent | cbfe56c3bc7ae849f8ea9825445f5e2c5dc4dc00 (diff) |
String to OUString
Change-Id: I41bda1a4d37bff782a51d07e36d471df2d6b421b
Reviewed-on: https://gerrit.libreoffice.org/5776
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/ww8/ww8graf.cxx | 116 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 2 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.hxx | 73 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par3.cxx | 27 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par5.cxx | 160 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8scan.cxx | 16 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8scan.hxx | 2 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8struc.hxx | 1 |
8 files changed, 194 insertions, 203 deletions
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx index a74e9f5ba981..294dd95c8409 100644 --- a/sw/source/filter/ww8/ww8graf.cxx +++ b/sw/source/filter/ww8/ww8graf.cxx @@ -525,40 +525,35 @@ void SwWW8ImplReader::InsertTxbxStyAttrs( SfxItemSet& rS, sal_uInt16 nColl ) } -static void lcl_StripFields(String &rString, long &rNewStartCp) +static void lcl_StripFields(OUString &rString, long &rNewStartCp) { - for(sal_uInt16 i=0; i < rString.Len(); i++) + sal_Int32 nStartPos = 0; + for (;;) { - if( 0x13 == rString.GetChar( i ) ) + nStartPos = rString.indexOf(0x13, nStartPos); + if (nStartPos<0) + return; + + const sal_Unicode cStops[] = {0x14, 0x15, 0}; + const sal_Int32 nStopPos = comphelper::string::indexOfAny(rString, cStops, nStartPos); + if (nStopPos<0) { - do - { - rString.Erase( i, 1 ); - rNewStartCp++; - } - while( rString.Len() - && ( i < rString.Len()) - && (0x14 != rString.GetChar( i ) ) - && (0x15 != rString.GetChar( i ) ) ); - if( rString.Len() ) - { - if( 0x14 == rString.GetChar( i ) ) - { - rString.Erase( i, 1 ); - rNewStartCp++; - do - { - i++; - } - while( rString.Len() - && ( i < rString.Len()) - && (0x15 != rString.GetChar( i ) ) ); - if( i < rString.Len() ) - rString.Erase( i, 1 ); - } - else if( 0x15 == rString.GetChar( i ) ) - rString.Erase( i, 1 ); - } + rNewStartCp += rString.getLength()-nStartPos; + rString = rString.copy(0, nStartPos); + return; + } + + const bool was0x14 = rString[nStopPos]==0x14; + rString = rString.replaceAt(nStartPos, nStopPos+1-nStartPos, ""); + rNewStartCp += nStopPos-nStartPos; + + if (was0x14) + { + ++rNewStartCp; + nStartPos = rString.indexOf(0x15, nStartPos); + if (nStartPos<0) + return; + rString = rString.replaceAt(nStartPos, 1, ""); } } } @@ -586,7 +581,7 @@ public: long GetStartPos() const {return mnStartPos;} long GetEndPos() const {return mnEndPos;} const String &GetURL() const {return msURL;} - void Adjust(xub_StrLen nAdjust) + void Adjust(sal_Int32 nAdjust) { mnStartPos-=nAdjust; mnEndPos-=nAdjust; @@ -767,12 +762,12 @@ void SwWW8ImplReader::InsertAttrsAsDrawingAttrs(long nStartCp, long nEndCp, { ESelection aSel(GetESelection(aIter->GetStartPos()-nStartCp, aIter->GetEndPos()-nStartCp)); - String aString(mpDrawEditEngine->GetText(aSel)); - xub_StrLen nOrigLen = aString.Len(); + OUString aString(mpDrawEditEngine->GetText(aSel)); + const sal_Int32 nOrigLen = aString.getLength(); long nDummy(0); lcl_StripFields(aString, nDummy); - xub_StrLen nChanged; + sal_Int32 nChanged; if (aIter->GetURL().Len()) { SvxURLField aURL(aIter->GetURL(), aString, @@ -783,7 +778,7 @@ void SwWW8ImplReader::InsertAttrsAsDrawingAttrs(long nStartCp, long nEndCp, else { mpDrawEditEngine->QuickInsertText(aString, aSel); - nChanged = nOrigLen - aString.Len(); + nChanged = nOrigLen - aString.getLength(); } for (myIter aIter2 = aIter+1; aIter2 != aEnd; ++aIter2) aIter2->Adjust(nChanged); @@ -894,33 +889,32 @@ bool SwWW8ImplReader::GetTxbxTextSttEndCp(WW8_CP& rStartCp, WW8_CP& rEndCp, // TxbxText() holt aus WW-File den Text und gibt diesen und den Anfangs- und // den um -2 (bzw. -1 bei Ver8) korrigierten End-Cp zurueck -bool SwWW8ImplReader::GetRangeAsDrawingString(String& rString, long nStartCp, long nEndCp, ManTypes eType) +bool SwWW8ImplReader::GetRangeAsDrawingString(OUString& rString, long nStartCp, long nEndCp, ManTypes eType) { WW8_CP nOffset = pWwFib->GetBaseCp(eType); - bool bOk = false; OSL_ENSURE(nStartCp <= nEndCp, "+Wo ist der Grafik-Text (7) ?"); if (nStartCp == nEndCp) - rString.Erase(); // leerer String: durchaus denkbar! + rString = OUString(); // leerer String: durchaus denkbar! else if (nStartCp < nEndCp) { // den Text einlesen: kann sich ueber mehrere Pieces erstrecken!!! - sal_uInt16 nLen = pSBase->WW8ReadString(*pStrm, rString, + const sal_Int32 nLen = pSBase->WW8ReadString(*pStrm, rString, nStartCp + nOffset, nEndCp - nStartCp, GetCurrentCharSet()); OSL_ENSURE(nLen, "+Wo ist der Grafik-Text (8) ?"); - if (nLen) + if (nLen>0) { - bOk = true; - if( 0x0d == rString.GetChar(nLen - 1) ) - rString.Erase(nLen - 1); + if( rString[nLen-1]==0x0d ) + rString = rString.copy(0, nLen-1); - rString.SearchAndReplaceAll( 0xb, 0xa ); + rString = rString.replace( 0xb, 0xa ); + return true; } } - return bOk; + return false; } -OutlinerParaObject* SwWW8ImplReader::ImportAsOutliner(String &rString, WW8_CP nStartCp, WW8_CP nEndCp, ManTypes eType) +OutlinerParaObject* SwWW8ImplReader::ImportAsOutliner(OUString &rString, WW8_CP nStartCp, WW8_CP nEndCp, ManTypes eType) { OutlinerParaObject* pRet = 0; @@ -951,14 +945,12 @@ OutlinerParaObject* SwWW8ImplReader::ImportAsOutliner(String &rString, WW8_CP nS //Strip out fields, leaving the result long nDummy(0); lcl_StripFields(rString, nDummy); - OUString aString(rString); //Strip out word's special characters for the simple string - aString = comphelper::string::remove(aString, 0x1); - aString = comphelper::string::remove(aString, 0x5); - aString = comphelper::string::remove(aString, 0x8); - aString = aString.replaceAll(OUString("\007\007"), OUString("\007\012")); - aString = aString.replace(0x7, ' '); - rString = aString; + rString = rString.replaceAll(OUString(0x1), ""); + rString = rString.replaceAll(OUString(0x5), ""); + rString = rString.replaceAll(OUString(0x8), ""); + rString = rString.replaceAll("\007\007", "\007\012"); + rString = rString.replace(0x7, ' '); } return pRet; @@ -979,7 +971,7 @@ SwFrmFmt* SwWW8ImplReader::InsertTxbxText(SdrTextObj* pTextObj, rbEraseTextObj = false; - String aString; + OUString aString; WW8_CP nStartCp, nEndCp; bool bContainsGraphics = false; bool bTextWasRead = GetTxbxTextSttEndCp( nStartCp, nEndCp, nTxBxS, @@ -990,24 +982,20 @@ SwFrmFmt* SwWW8ImplReader::InsertTxbxText(SdrTextObj* pTextObj, if( pObjSiz ) mpDrawEditEngine->SetPaperSize( *pObjSiz ); - String aOrigString(aString); + const OUString aOrigString(aString); if( bTextWasRead ) { long nNewStartCp = nStartCp; lcl_StripFields(aString, nNewStartCp); - if (1 != aString.Len()) + if (aString.getLength()!=1) { - if ( (STRING_NOTFOUND != aString.Search(0x1)) || - (STRING_NOTFOUND != aString.Search(0x8)) ) - { - bContainsGraphics = true; - } + bContainsGraphics = aString.indexOf(0x1)<0 || aString.indexOf(0x8)<0; } else // May be a single graphic or object { bool bDone = true; - switch( aString.GetChar(0) ) + switch( aString[0] ) { case 0x1: if (!pbTestTxbxContainsText) @@ -1133,7 +1121,7 @@ SwFrmFmt* SwWW8ImplReader::InsertTxbxText(SdrTextObj* pTextObj, MapWrapIntoFlyFmt(pRecord, pFlyFmt); } } - aString.Erase(); + aString = OUString(); rbEraseTextObj = (0 != pFlyFmt); } } diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 729ad84696d3..108bbccfe57e 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -1862,7 +1862,7 @@ long SwWW8ImplReader::Read_And(WW8PLCFManResult* pRes) DateTime aDate = msfilter::util::DTTM2DateTime(nDateTime); - String sTxt; + OUString sTxt; OutlinerParaObject *pOutliner = ImportAsOutliner( sTxt, pRes->nCp2OrIdx, pRes->nCp2OrIdx + pRes->nMemLen, MAN_AND ); diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx index 4409fdb77771..5c74252d50f5 100644 --- a/sw/source/filter/ww8/ww8par.hxx +++ b/sw/source/filter/ww8/ww8par.hxx @@ -21,6 +21,7 @@ #define _WW8PAR_HXX #include <tools/string.hxx> +#include "rtl/ustring.hxx" #include <filter/msfilter/msdffimp.hxx> #include <editeng/frmdir.hxx> #include <fltshell.hxx> @@ -1493,8 +1494,8 @@ private: bool GetTxbxTextSttEndCp(WW8_CP& rStartCp, WW8_CP& rEndCp, sal_uInt16 nTxBxS, sal_uInt16 nSequence); - bool GetRangeAsDrawingString(String& rString, long StartCp, long nEndCp, ManTypes eType); - OutlinerParaObject* ImportAsOutliner(String &rString, WW8_CP nStartCp, WW8_CP nEndCp, ManTypes eType); + bool GetRangeAsDrawingString(OUString& rString, long StartCp, long nEndCp, ManTypes eType); + OutlinerParaObject* ImportAsOutliner(OUString &rString, WW8_CP nStartCp, WW8_CP nEndCp, ManTypes eType); SwFrmFmt* InsertTxbxText(SdrTextObj* pTextObj, Size* pObjSiz, sal_uInt16 nTxBxS, sal_uInt16 nSequence, long nPosCp, SwFrmFmt* pFlyFmt, bool bMakeSdrGrafObj, bool& rbEraseTextObj, @@ -1733,51 +1734,51 @@ public: // eigentlich private, geht aber leider nur public String GetMappedBookmark(const String &rOrigName); // Felder - eF_ResT Read_F_Input(WW8FieldDesc*, String& rStr); - eF_ResT Read_F_InputVar(WW8FieldDesc*, String& rStr); - eF_ResT Read_F_ANumber( WW8FieldDesc*, String& ); - eF_ResT Read_F_DocInfo( WW8FieldDesc* pF, String& rStr ); - eF_ResT Read_F_Author( WW8FieldDesc*, String& ); - eF_ResT Read_F_TemplName( WW8FieldDesc*, String& ); - short GetTimeDatePara(String& rStr, sal_uInt32& rFormat, sal_uInt16 &rLang, + eF_ResT Read_F_Input(WW8FieldDesc*, OUString& rStr); + eF_ResT Read_F_InputVar(WW8FieldDesc*, OUString& rStr); + eF_ResT Read_F_ANumber( WW8FieldDesc*, OUString& ); + eF_ResT Read_F_DocInfo( WW8FieldDesc* pF, OUString& rStr ); + eF_ResT Read_F_Author( WW8FieldDesc*, OUString& ); + eF_ResT Read_F_TemplName( WW8FieldDesc*, OUString& ); + short GetTimeDatePara(OUString& rStr, sal_uInt32& rFormat, sal_uInt16 &rLang, int nWhichDefault, bool bHijri = false); bool ForceFieldLanguage(SwField &rFld, sal_uInt16 nLang); - eF_ResT Read_F_DateTime( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_FileName( WW8FieldDesc*, String& rStr); - eF_ResT Read_F_Anz( WW8FieldDesc* pF, String& ); - eF_ResT Read_F_CurPage( WW8FieldDesc*, String& ); - eF_ResT Read_F_Ref( WW8FieldDesc* pF, String& ); + eF_ResT Read_F_DateTime( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_FileName( WW8FieldDesc*, OUString& rStr); + eF_ResT Read_F_Anz( WW8FieldDesc* pF, OUString& ); + eF_ResT Read_F_CurPage( WW8FieldDesc*, OUString& ); + eF_ResT Read_F_Ref( WW8FieldDesc* pF, OUString& ); - eF_ResT Read_F_Set( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_PgRef( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_NoteReference( WW8FieldDesc* pF, String& rStr ); + eF_ResT Read_F_Set( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_PgRef( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_NoteReference( WW8FieldDesc* pF, OUString& rStr ); - eF_ResT Read_F_Tox( WW8FieldDesc* pF, String& rStr ); + eF_ResT Read_F_Tox( WW8FieldDesc* pF, OUString& rStr ); bool AddExtraOutlinesAsExtraStyles(SwTOXBase& rBase); - eF_ResT Read_F_Symbol( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_Embedd( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr); - eF_ResT Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr ); - eF_ResT Read_F_FormListBox( WW8FieldDesc* pF, String& rStr); + eF_ResT Read_F_Symbol( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_Embedd( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_FormTextBox( WW8FieldDesc* pF, OUString& rStr); + eF_ResT Read_F_FormCheckBox( WW8FieldDesc* pF, OUString& rStr ); + eF_ResT Read_F_FormListBox( WW8FieldDesc* pF, OUString& rStr); com::sun::star::awt::Size MiserableDropDownFormHack(const String &rString, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>& rPropSet); - eF_ResT Read_F_Macro( WW8FieldDesc*, String& rStr); - eF_ResT Read_F_DBField( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_DBNext( WW8FieldDesc*, String& ); - eF_ResT Read_F_DBNum( WW8FieldDesc*, String& ); - eF_ResT Read_F_Equation( WW8FieldDesc*, String& ); + eF_ResT Read_F_Macro( WW8FieldDesc*, OUString& rStr); + eF_ResT Read_F_DBField( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_DBNext( WW8FieldDesc*, OUString& ); + eF_ResT Read_F_DBNum( WW8FieldDesc*, OUString& ); + eF_ResT Read_F_Equation( WW8FieldDesc*, OUString& ); void Read_SubF_Ruby( WW8ReadFieldParams& rReadParam); void Read_SubF_Combined( WW8ReadFieldParams& rReadParam); - eF_ResT Read_F_IncludePicture( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_IncludeText( WW8FieldDesc*, String& rStr ); - eF_ResT Read_F_Seq( WW8FieldDesc*, String& rStr ); - - eF_ResT Read_F_OCX(WW8FieldDesc*, String&); - eF_ResT Read_F_Hyperlink(WW8FieldDesc*, String& rStr); - eF_ResT Read_F_Shape(WW8FieldDesc* pF, String& rStr); - eF_ResT Read_F_HTMLControl( WW8FieldDesc* pF, String& rStr); + eF_ResT Read_F_IncludePicture( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_IncludeText( WW8FieldDesc*, OUString& rStr ); + eF_ResT Read_F_Seq( WW8FieldDesc*, OUString& rStr ); + + eF_ResT Read_F_OCX(WW8FieldDesc*, OUString&); + eF_ResT Read_F_Hyperlink(WW8FieldDesc*, OUString& rStr); + eF_ResT Read_F_Shape(WW8FieldDesc* pF, OUString& rStr); + eF_ResT Read_F_HTMLControl( WW8FieldDesc* pF, OUString& rStr); void DeleteFormImpl(); diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index 068bca9ee619..fea72bf588c9 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -94,7 +94,7 @@ using namespace sw::mark; //----------------------------------------- //cmc, OCX i.e. word 97 form controls -eF_ResT SwWW8ImplReader::Read_F_OCX( WW8FieldDesc*, String& ) +eF_ResT SwWW8ImplReader::Read_F_OCX( WW8FieldDesc*, OUString& ) { if( bObj && nPicLocFc ) nObjLocFc = nPicLocFc; @@ -102,11 +102,11 @@ eF_ResT SwWW8ImplReader::Read_F_OCX( WW8FieldDesc*, String& ) return FLD_TEXT; } -eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, OUString& rStr ) { WW8FormulaEditBox aFormula(*this); - if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1))) { + if (rStr[pF->nLCode-1]==0x01) { ImportFormulaControl(aFormula,pF->nSCode+pF->nLCode-1, WW8_CT_EDIT); } @@ -167,22 +167,24 @@ eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr ) } } -eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, OUString& rStr ) { WW8FormulaCheckBox aFormula(*this); if (!pFormImpl) pFormImpl = new SwMSConvertControls(mpDocShell, pPaM); - if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1))) + if (rStr[pF->nLCode-1]==0x01) ImportFormulaControl(aFormula,pF->nSCode+pF->nLCode-1, WW8_CT_CHECKBOX); const SvtFilterOptions& rOpt = SvtFilterOptions::Get(); sal_Bool bUseEnhFields = rOpt.IsUseEnhancedFields(); - if (!bUseEnhFields) { - pFormImpl->InsertFormula(aFormula); - return FLD_OK; - } else { + if (!bUseEnhFields) + { + pFormImpl->InsertFormula(aFormula); + return FLD_OK; + } + String aBookmarkName; WW8PLCFx_Book* pB = pPlcxMan->GetBook(); if (pB!=NULL) { @@ -222,14 +224,13 @@ eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr ) } } return FLD_OK; - } } -eF_ResT SwWW8ImplReader::Read_F_FormListBox( WW8FieldDesc* pF, String& rStr) +eF_ResT SwWW8ImplReader::Read_F_FormListBox( WW8FieldDesc* pF, OUString& rStr) { WW8FormulaListBox aFormula(*this); - if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1))) + if (rStr[pF->nLCode-1]==0x01) ImportFormulaControl(aFormula,pF->nSCode+pF->nLCode-1, WW8_CT_DROPDOWN); const SvtFilterOptions& rOpt = SvtFilterOptions::Get(); @@ -298,7 +299,7 @@ eF_ResT SwWW8ImplReader::Read_F_FormListBox( WW8FieldDesc* pF, String& rStr) } } -eF_ResT SwWW8ImplReader::Read_F_HTMLControl(WW8FieldDesc*, String&) +eF_ResT SwWW8ImplReader::Read_F_HTMLControl(WW8FieldDesc*, OUString&) { if( bObj && nPicLocFc ) nObjLocFc = nPicLocFc; diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index c4383ed6214d..8734aee3ad10 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -323,7 +323,7 @@ long SwWW8ImplReader::Read_Book(WW8PLCFManResult*) //ToUpper darf auf keinen Fall gemacht werden, weil der Bookmark- name ein Hyperlink-Ziel sein kann! - String aVal; + OUString aVal; if( SwFltGetFlag( nFieldFlags, SwFltControlStack::BOOK_TO_VAR_REF ) ) { // Fuer UEbersetzung Bookmark -> Variable setzen @@ -346,18 +346,18 @@ long SwWW8ImplReader::Read_Book(WW8PLCFManResult*) bool bAllowCr = SwFltGetFlag(nFieldFlags, SwFltControlStack::ALLOW_FLD_CR) ? true : false; - sal_Unicode cChar; - - for( xub_StrLen nI = 0; - nI < aVal.Len() && aVal.Len() < (MAX_FIELDLEN - 4); ++nI ) + for( sal_Int32 nI = 0; + nI < aVal.getLength() && aVal.getLength() < (MAX_FIELDLEN - 4); + ++nI ) { - switch( cChar = aVal.GetChar( nI ) ) + const sal_Unicode cChar = aVal[nI]; + switch( cChar ) { case 0x0b: case 0x0c: case 0x0d: if( bAllowCr ) - aVal.SetChar( nI, '\n' ), bSetAsHex = false; + aVal = aVal.replaceAt( nI, 1, "\n" ), bSetAsHex = false; else bSetAsHex = true; break; @@ -375,17 +375,17 @@ long SwWW8ImplReader::Read_Book(WW8PLCFManResult*) if( bSetAsHex ) { //all Hex-Numbers with \x before - String sTmp( sHex ); + OUString sTmp( sHex ); if( cChar < 0x10 ) - sTmp += '0'; + sTmp += "0"; sTmp += OUString::number( cChar, 16 ); - aVal.Replace( nI, 1 , sTmp ); - nI += sTmp.Len() - 1; + aVal = aVal.replaceAt( nI, 1 , sTmp ); + nI += sTmp.getLength() - 1; } } - if( aVal.Len() > (MAX_FIELDLEN - 4)) - aVal.Erase( MAX_FIELDLEN - 4 ); + if ( aVal.getLength() > (MAX_FIELDLEN - 4)) + aVal = aVal.copy( 0, MAX_FIELDLEN - 4 ); } //e.g. inserting bookmark around field result, so we need to put @@ -525,9 +525,9 @@ static SvxExtNumType GetNumTypeFromName(const String& rStr, return eTyp; } -static SvxExtNumType GetNumberPara(String& rStr, bool bAllowPageDesc = false) +static SvxExtNumType GetNumberPara(OUString& rStr, bool bAllowPageDesc = false) { - String s( FindPara( rStr, '*', '*' ) ); // Ziffernart + OUString s( FindPara( rStr, '*', '*' ) ); // Ziffernart SvxExtNumType aType = GetNumTypeFromName( s, bAllowPageDesc ); return aType; } @@ -577,7 +577,7 @@ String GetWordDefaultDateStringAsUS(SvNumberFormatter* pFormatter, sal_uInt16 nL return sParams; } -short SwWW8ImplReader::GetTimeDatePara(String& rStr, sal_uInt32& rFormat, +short SwWW8ImplReader::GetTimeDatePara(OUString& rStr, sal_uInt32& rFormat, sal_uInt16 &rLang, int nWhichDefault, bool bHijri) { bool bRTL = false; @@ -870,7 +870,7 @@ void WW8FieldEntry::SetBookmarkCode(OUString bookmarkCode) // Returnwert: Gesamtlaenge des Feldes ( zum UEberlesen ) long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes) { - typedef eF_ResT (SwWW8ImplReader:: *FNReadField)( WW8FieldDesc*, String& ); + typedef eF_ResT (SwWW8ImplReader:: *FNReadField)( WW8FieldDesc*, OUString& ); enum Limits {eMax = 96}; static const FNReadField aWW8FieldTab[eMax+1] = { @@ -1048,22 +1048,22 @@ long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes) return aF.nLen; // Result nested -> nicht brauchbar long nOldPos = pStrm->Tell(); - String aStr; + OUString aStr; aF.nLCode = pSBase->WW8ReadString( *pStrm, aStr, pPlcxMan->GetCpOfs()+ aF.nSCode, aF.nLCode, eTextCharSet ); pStrm->Seek( nOldPos ); // field codes which contain '/' or '.' are not displayed in WinWord // skip if it is formula field or found space before. see #i119446, #i119585. - const xub_StrLen nDotPos = aStr.Search('.'); - const xub_StrLen nSlashPos = aStr.Search('/'); - xub_StrLen nSpacePos = aStr.Search( ' ', 1 ); - if ( nSpacePos == STRING_NOTFOUND ) - nSpacePos = aStr.Len(); - - if ( !( aStr.EqualsAscii( "=", 1, 1 ) ) && - ((( nDotPos != STRING_NOTFOUND ) && ( nDotPos < nSpacePos )) || - (( nSlashPos != STRING_NOTFOUND ) && ( nSlashPos < nSpacePos )))) + const sal_Int32 nDotPos = aStr.indexOf('.'); + const sal_Int32 nSlashPos = aStr.indexOf('/'); + sal_Int32 nSpacePos = aStr.indexOf( ' ', 1 ); + if ( nSpacePos<0 ) + nSpacePos = aStr.getLength(); + + if ( !( aStr.getLength()>1 && aStr[1]=='=') && + (( nDotPos>=0 && nDotPos < nSpacePos ) || + ( nSlashPos>=0 && nSlashPos < nSpacePos ))) return aF.nLen; else { @@ -1080,7 +1080,7 @@ long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes) else { // Lies Feld long nOldPos = pStrm->Tell(); - String aStr; + OUString aStr; if ( aF.nId == 6 && aF.bCodeNest ) { // TODO Extract the whole code string using the nested codes @@ -1097,7 +1097,7 @@ long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes) // Thus, delete character 0x01, which stands for such a graphic. if (aF.nId==51) //#i56768# only do it for the MACROBUTTON field, since DropListFields need the 0x01. { - aStr = comphelper::string::remove(aStr, 0x01); + aStr.replaceAll(OUString(0x01), ""); } eF_ResT eRes = (this->*aWW8FieldTab[aF.nId])( &aF, aStr ); @@ -1241,7 +1241,7 @@ long SwWW8ImplReader::Read_F_Tag( WW8FieldDesc* pF ) if( nL > MAX_FIELDLEN ) nL = MAX_FIELDLEN; // MaxLaenge, durch Quoten // max. 4* so gross - String sFTxt; + OUString sFTxt; nL = pSBase->WW8ReadString( *pStrm, sFTxt, pPlcxMan->GetCpOfs() + nStart, nL, eStructCharSet); @@ -1259,7 +1259,7 @@ long SwWW8ImplReader::Read_F_Tag( WW8FieldDesc* pF ) // normale Felder //----------------------------------------- -eF_ResT SwWW8ImplReader::Read_F_Input( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Input( WW8FieldDesc* pF, OUString& rStr ) { String aDef; String aQ; @@ -1309,17 +1309,14 @@ String SwWW8ImplReader::GetFieldResult( WW8FieldDesc* pF ) nL = MAX_FIELDLEN; // MaxLaenge, durch Quoten // max. 4* so gross - String sRes; + OUString sRes; nL = pSBase->WW8ReadString( *pStrm, sRes, pPlcxMan->GetCpOfs() + nStart, nL, eStructCharSet ); pStrm->Seek( nOldPos ); - //replace CR 0x0D with LF 0x0A - sRes.SearchAndReplaceAll(0x0D, 0x0A); - //replace VT 0x0B with LF 0x0A - sRes.SearchAndReplaceAll(0x0B, 0x0A); - return sRes; + //replace both CR 0x0D and VT 0x0B with LF 0x0A + return sRes.replace(0x0D, 0x0A).replace(0x0B, 0x0A); } /* @@ -1444,7 +1441,7 @@ String SwWW8ImplReader::GetMappedBookmark(const String &rOrigName) } // "ASK" -eF_ResT SwWW8ImplReader::Read_F_InputVar( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_InputVar( WW8FieldDesc* pF, OUString& rStr ) { String sOrigName; String aQ; @@ -1501,7 +1498,7 @@ eF_ResT SwWW8ImplReader::Read_F_InputVar( WW8FieldDesc* pF, String& rStr ) } // "AUTONR" -eF_ResT SwWW8ImplReader::Read_F_ANumber( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_ANumber( WW8FieldDesc*, OUString& rStr ) { if( !pNumFldType ){ // 1. Mal SwSetExpFieldType aT( &rDoc, OUString("AutoNr"), nsSwGetSetExpType::GSE_SEQ ); @@ -1515,7 +1512,7 @@ eF_ResT SwWW8ImplReader::Read_F_ANumber( WW8FieldDesc*, String& rStr ) } // "SEQ" -eF_ResT SwWW8ImplReader::Read_F_Seq( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Seq( WW8FieldDesc*, OUString& rStr ) { String aSequenceName; String aBook; @@ -1591,7 +1588,7 @@ eF_ResT SwWW8ImplReader::Read_F_Seq( WW8FieldDesc*, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_DocInfo( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_DocInfo( WW8FieldDesc* pF, OUString& rStr ) { sal_uInt16 nSub=0; // RegInfoFormat, DefaultFormat fuer DocInfoFelder @@ -1822,7 +1819,7 @@ eF_ResT SwWW8ImplReader::Read_F_DocInfo( WW8FieldDesc* pF, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_Author( WW8FieldDesc*, String& ) +eF_ResT SwWW8ImplReader::Read_F_Author( WW8FieldDesc*, OUString& ) { // SH: Das SwAuthorField bezeichnet nicht den urspruenglichen // Autor, sondern den aktuellen Benutzer, also besser ueber DocInfo @@ -1833,7 +1830,7 @@ eF_ResT SwWW8ImplReader::Read_F_Author( WW8FieldDesc*, String& ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_TemplName( WW8FieldDesc*, String& ) +eF_ResT SwWW8ImplReader::Read_F_TemplName( WW8FieldDesc*, OUString& ) { SwTemplNameField aFld( (SwTemplNameFieldType*) rDoc.GetSysFldType( RES_TEMPLNAMEFLD ), FF_NAME ); @@ -1843,7 +1840,7 @@ eF_ResT SwWW8ImplReader::Read_F_TemplName( WW8FieldDesc*, String& ) // Sowohl das Datum- wie auch das Uhrzeit-Feld kann fuer Datum, fuer Uhrzeit // oder fuer beides benutzt werden. -eF_ResT SwWW8ImplReader::Read_F_DateTime( WW8FieldDesc*pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_DateTime( WW8FieldDesc*pF, OUString& rStr ) { bool bHijri = false; WW8ReadFieldParams aReadParam(rStr); @@ -1906,7 +1903,7 @@ eF_ResT SwWW8ImplReader::Read_F_DateTime( WW8FieldDesc*pF, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_FileName(WW8FieldDesc*, String &rStr) +eF_ResT SwWW8ImplReader::Read_F_FileName(WW8FieldDesc*, OUString &rStr) { SwFileNameFormat eType = FF_NAME; WW8ReadFieldParams aReadParam(rStr); @@ -1936,7 +1933,7 @@ eF_ResT SwWW8ImplReader::Read_F_FileName(WW8FieldDesc*, String &rStr) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_Anz( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Anz( WW8FieldDesc* pF, OUString& rStr ) { // SeitenZahl - Feld sal_uInt16 nSub = DS_PAGE; switch ( pF->nId ){ @@ -1950,7 +1947,7 @@ eF_ResT SwWW8ImplReader::Read_F_Anz( WW8FieldDesc* pF, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_CurPage( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_CurPage( WW8FieldDesc*, OUString& rStr ) { // Seitennummer SwPageNumberField aFld( (SwPageNumberFieldType*) @@ -1961,7 +1958,7 @@ eF_ResT SwWW8ImplReader::Read_F_CurPage( WW8FieldDesc*, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_Symbol( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Symbol( WW8FieldDesc*, OUString& rStr ) { //e.g. #i20118# String aQ; @@ -2029,7 +2026,7 @@ eF_ResT SwWW8ImplReader::Read_F_Symbol( WW8FieldDesc*, String& rStr ) } // "EINBETTEN" -eF_ResT SwWW8ImplReader::Read_F_Embedd( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Embedd( WW8FieldDesc*, OUString& rStr ) { String sHost; @@ -2059,7 +2056,7 @@ eF_ResT SwWW8ImplReader::Read_F_Embedd( WW8FieldDesc*, String& rStr ) // "SET" -eF_ResT SwWW8ImplReader::Read_F_Set( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Set( WW8FieldDesc* pF, OUString& rStr ) { String sOrigName; String sVal; @@ -2095,7 +2092,7 @@ eF_ResT SwWW8ImplReader::Read_F_Set( WW8FieldDesc* pF, String& rStr ) } // "REF" -eF_ResT SwWW8ImplReader::Read_F_Ref( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Ref( WW8FieldDesc*, OUString& rStr ) { // Reference - Field String sOrigBkmName; REFERENCEMARK eFormat = REF_CONTENT; @@ -2169,7 +2166,7 @@ eF_ResT SwWW8ImplReader::Read_F_Ref( WW8FieldDesc*, String& rStr ) } // Note Reference - Field -eF_ResT SwWW8ImplReader::Read_F_NoteReference( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_NoteReference( WW8FieldDesc*, OUString& rStr ) { String aBkmName; bool bAboveBelow = false; @@ -2219,7 +2216,7 @@ eF_ResT SwWW8ImplReader::Read_F_NoteReference( WW8FieldDesc*, String& rStr ) } // "SEITENREF" -eF_ResT SwWW8ImplReader::Read_F_PgRef( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_PgRef( WW8FieldDesc*, OUString& rStr ) { String sOrigName; WW8ReadFieldParams aReadParam( rStr ); @@ -2285,7 +2282,7 @@ bool ConvertMacroSymbol( const String& rName, String& rReference ) //end // "MACROSCHALTFL"ACHE" -eF_ResT SwWW8ImplReader::Read_F_Macro( WW8FieldDesc*, String& rStr) +eF_ResT SwWW8ImplReader::Read_F_Macro( WW8FieldDesc*, OUString& rStr) { String aName; String aVText; @@ -2410,7 +2407,7 @@ bool CanUseRemoteLink(const String &rGrfName) } // "EINF"UGENGRAFIK" -eF_ResT SwWW8ImplReader::Read_F_IncludePicture( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_IncludePicture( WW8FieldDesc*, OUString& rStr ) { String aGrfName; bool bEmbedded = true; @@ -2478,7 +2475,7 @@ String wwSectionNamer::UniqueName() } // "EINFUEGENTEXT" -eF_ResT SwWW8ImplReader::Read_F_IncludeText( WW8FieldDesc* /*pF*/, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_IncludeText( WW8FieldDesc* /*pF*/, OUString& rStr ) { String aPara; String aBook; @@ -2547,7 +2544,7 @@ eF_ResT SwWW8ImplReader::Read_F_IncludeText( WW8FieldDesc* /*pF*/, String& rStr } // "SERIENDRUCKFELD" -eF_ResT SwWW8ImplReader::Read_F_DBField( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_DBField( WW8FieldDesc* pF, OUString& rStr ) { String aName; WW8ReadFieldParams aReadParam( rStr ); @@ -2570,7 +2567,7 @@ eF_ResT SwWW8ImplReader::Read_F_DBField( WW8FieldDesc* pF, String& rStr ) SwDBField aFld( (SwDBFieldType*)pFT ); aFld.SetFieldCode( rStr ); - String aResult; + OUString aResult; pSBase->WW8ReadString( *pStrm, aResult, pPlcxMan->GetCpOfs()+ pF->nSRes, pF->nLRes, eTextCharSet ); @@ -2582,7 +2579,7 @@ eF_ResT SwWW8ImplReader::Read_F_DBField( WW8FieldDesc* pF, String& rStr ) } // "N"ACHSTER" -eF_ResT SwWW8ImplReader::Read_F_DBNext( WW8FieldDesc*, String& ) +eF_ResT SwWW8ImplReader::Read_F_DBNext( WW8FieldDesc*, OUString& ) { SwDBNextSetFieldType aN; SwFieldType* pFT = rDoc.InsertFldType( aN ); @@ -2593,7 +2590,7 @@ eF_ResT SwWW8ImplReader::Read_F_DBNext( WW8FieldDesc*, String& ) } // "DATENSATZ" -eF_ResT SwWW8ImplReader::Read_F_DBNum( WW8FieldDesc*, String& ) +eF_ResT SwWW8ImplReader::Read_F_DBNum( WW8FieldDesc*, OUString& ) { SwDBSetNumberFieldType aN; SwFieldType* pFT = rDoc.InsertFldType( aN ); @@ -2612,7 +2609,7 @@ eF_ResT SwWW8ImplReader::Read_F_DBNum( WW8FieldDesc*, String& ) ruby text ... */ -eF_ResT SwWW8ImplReader::Read_F_Equation( WW8FieldDesc*, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Equation( WW8FieldDesc*, OUString& rStr ) { WW8ReadFieldParams aReadParam( rStr ); const sal_Int32 cChar = aReadParam.SkipToNextToken(); @@ -3059,7 +3056,7 @@ static sal_uInt16 lcl_GetMaxValidWordTOCLevel(const SwForm &rForm) return nRet; } -eF_ResT SwWW8ImplReader::Read_F_Tox( WW8FieldDesc* pF, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Tox( WW8FieldDesc* pF, OUString& rStr ) { #if defined(WW_NATIVE_TOC) if (1) { @@ -3568,7 +3565,7 @@ eF_ResT SwWW8ImplReader::Read_F_Tox( WW8FieldDesc* pF, String& rStr ) return FLD_OK; } -eF_ResT SwWW8ImplReader::Read_F_Shape(WW8FieldDesc* /*pF*/, String& /*rStr*/) +eF_ResT SwWW8ImplReader::Read_F_Shape(WW8FieldDesc* /*pF*/, OUString& /*rStr*/) { /* #i3958# 0x8 followed by 0x1 where the shape is the 0x8 and its anchoring @@ -3578,7 +3575,7 @@ eF_ResT SwWW8ImplReader::Read_F_Shape(WW8FieldDesc* /*pF*/, String& /*rStr*/) return FLD_TEXT; } -eF_ResT SwWW8ImplReader::Read_F_Hyperlink( WW8FieldDesc* /*pF*/, String& rStr ) +eF_ResT SwWW8ImplReader::Read_F_Hyperlink( WW8FieldDesc* /*pF*/, OUString& rStr ) { #if defined(WW_NATIVE_TOC) if (1) { @@ -3774,31 +3771,34 @@ void SwWW8ImplReader::Read_FldVanish( sal_uInt16, const sal_uInt8*, short nLen ) WW8_CP nStartCp = pPlcxMan->Where() + pPlcxMan->GetCpOfs(); - String sFieldName; - sal_uInt16 nFieldLen = pSBase->WW8ReadString( *pStrm, sFieldName, nStartCp, + OUString sFieldName; + sal_Int32 nFieldLen = pSBase->WW8ReadString( *pStrm, sFieldName, nStartCp, nChunk, eStructCharSet ); nStartCp+=nFieldLen; - xub_StrLen nC = 0; + sal_Int32 nC = 0; //If the first chunk did not start with a field start then //reset the stream position and give up - if( !nFieldLen || (0x13 != sFieldName.GetChar( nC ))) // Field Start Mark + if( !nFieldLen || sFieldName[nC]!=0x13 ) // Field Start Mark { // If Field End Mark found - if( nFieldLen && (0x15 == sFieldName.GetChar( nC ))) + if( nFieldLen && sFieldName[nC]==0x15 ) bIgnoreText = false; pStrm->Seek( nOldPos ); return; // kein Feld zu finden } - xub_StrLen nFnd; + sal_Int32 nFnd; //If this chunk does not contain a field end, keep reading chunks //until we find one, or we run out of text, - while (STRING_NOTFOUND == (nFnd = sFieldName.Search(0x15))) + for (;;) { - String sTemp; + nFnd = sFieldName.indexOf(0x15); + if (nFnd<0) + break; + OUString sTemp; nFieldLen = pSBase->WW8ReadString( *pStrm, sTemp, - nStartCp, nChunk, eStructCharSet ); + nStartCp, nChunk, eStructCharSet ); sFieldName+=sTemp; nStartCp+=nFieldLen; if (!nFieldLen) @@ -3809,22 +3809,22 @@ void SwWW8ImplReader::Read_FldVanish( sal_uInt16, const sal_uInt8*, short nLen ) //if we have no 0x15 give up, otherwise erase everything from the 0x15 //onwards - if (STRING_NOTFOUND == nFnd) + if (nFnd<0) return; - else - sFieldName.Erase(nFnd); + + sFieldName = sFieldName.copy(0, nFnd); nC++; - while( ' ' == sFieldName.GetChar( nC )) + while ( sFieldName[nC]==' ' ) nC++; for( int i = 0; i < 3; i++ ) { const sal_Char* pName = aFldNames[i]; - sal_uInt16 nNameLen = *pName++; - if( sFieldName.EqualsIgnoreCaseAscii( pName, nC, nNameLen ) ) + const sal_Int32 nNameLen = static_cast<sal_Int32>(*pName++); + if( sFieldName.matchIgnoreAsciiCaseAsciiL( pName, nNameLen, nC ) ) { - ImportTox( aFldId[i], sFieldName.Copy( nC + nNameLen ) ); + ImportTox( aFldId[i], sFieldName.copy( nC + nNameLen ) ); break; // keine Mehrfachnennungen moeglich } } diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index f050025454bd..5962e9ced6b7 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -1902,11 +1902,11 @@ String read_uInt16_BeltAndBracesString(SvStream& rStrm) return aRet; } -xub_StrLen WW8ScannerBase::WW8ReadString( SvStream& rStrm, String& rStr, +sal_Int32 WW8ScannerBase::WW8ReadString( SvStream& rStrm, OUString& rStr, WW8_CP nAktStartCp, long nTotalLen, rtl_TextEncoding eEnc ) const { // Read in plain text, which can extend over several pieces - rStr.Erase(); + rStr = OUString(); long nTotalRead = 0; WW8_CP nBehindTextCp = nAktStartCp + nTotalLen; @@ -1931,18 +1931,18 @@ xub_StrLen WW8ScannerBase::WW8ReadString( SvStream& rStrm, String& rStr, if( nLen > USHRT_MAX - 1 ) nLen = USHRT_MAX - 1; - if( bIsUnicode ) - rStr.Append(String(read_uInt16s_ToOUString(rStrm, nLen))); - else - rStr.Append(String(read_uInt8s_ToOUString(rStrm, nLen, eEnc))); + rStr += bIsUnicode + ? read_uInt16s_ToOUString(rStrm, nLen) + : read_uInt8s_ToOUString(rStrm, nLen, eEnc); + nTotalRead += nLen; nAktStartCp += nLen; - if ( nTotalRead != rStr.Len() ) + if ( nTotalRead != rStr.getLength() ) break; } while( nTotalRead < nTotalLen ); - return rStr.Len(); + return rStr.getLength(); } WW8PLCFspecial::WW8PLCFspecial(SvStream* pSt, sal_uInt32 nFilePos, diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx index cd1fefe85445..795ca8cc9ffa 100644 --- a/sw/source/filter/ww8/ww8scan.hxx +++ b/sw/source/filter/ww8/ww8scan.hxx @@ -975,7 +975,7 @@ public: WW8_FC WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode = 0, WW8_CP* pNextPieceCp = 0, bool* pTestFlag = 0) const; - xub_StrLen WW8ReadString(SvStream& rStrm, String& rStr, WW8_CP nAktStartCp, + sal_Int32 WW8ReadString(SvStream& rStrm, OUString& rStr, WW8_CP nAktStartCp, long nTotalLen, rtl_TextEncoding eEnc ) const; }; diff --git a/sw/source/filter/ww8/ww8struc.hxx b/sw/source/filter/ww8/ww8struc.hxx index eec8ae23ccac..eb6948cbe4d6 100644 --- a/sw/source/filter/ww8/ww8struc.hxx +++ b/sw/source/filter/ww8/ww8struc.hxx @@ -22,6 +22,7 @@ #include <osl/endian.h> #include <tools/string.hxx> +#include "rtl/ustring.hxx" #include <sal/config.h> #include <editeng/borderline.hxx> |