summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMatteo Casalin <matteo.casalin@yahoo.com>2013-09-03 10:13:07 +0200
committerCaolán McNamara <caolanm@redhat.com>2013-09-03 13:08:22 +0000
commit2564c5bbe4acd3f29530b056cef3f6e8ecb6194c (patch)
tree52bd2e53f4bba6bddc3d6bdfd93fb98161ca1480 /sw
parentcbfe56c3bc7ae849f8ea9825445f5e2c5dc4dc00 (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.cxx116
-rw-r--r--sw/source/filter/ww8/ww8par.cxx2
-rw-r--r--sw/source/filter/ww8/ww8par.hxx73
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx27
-rw-r--r--sw/source/filter/ww8/ww8par5.cxx160
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx16
-rw-r--r--sw/source/filter/ww8/ww8scan.hxx2
-rw-r--r--sw/source/filter/ww8/ww8struc.hxx1
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>