From d00fc0e293852cfc019ffaffa65bee327397677b Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 19 Dec 2011 22:19:52 +0000 Subject: disentangle Read/WriteByteString OUString variants The ones which use a definite 8-bit encoding read/write pascal-style strings with a 16bit length prefix. The ones which use a definite 16-bit encoding read/write pascal-style UTF-16 strings with a 32bit length prefix, i.e. not ByteStrings at all The "I dunno" ones might be UTF-16 strings or 8-bit strings, depending on the charset. Rename to ReadUniOrByteString like the other similar horrors to flag this misery --- basic/source/basmgr/basmgr.cxx | 11 ++++++----- basic/source/classes/image.cxx | 16 ++++++++-------- basic/source/classes/sbxmod.cxx | 4 ++-- basic/source/runtime/methods1.cxx | 4 ++-- basic/source/sbx/sbxbase.cxx | 18 ++++++++++++------ basic/source/sbx/sbxcoll.cxx | 6 ++++-- basic/source/sbx/sbxobj.cxx | 14 ++++++++------ basic/source/sbx/sbxvalue.cxx | 23 +++++++++++------------ basic/source/sbx/sbxvar.cxx | 19 ++++++++++++------- 9 files changed, 65 insertions(+), 50 deletions(-) (limited to 'basic') diff --git a/basic/source/basmgr/basmgr.cxx b/basic/source/basmgr/basmgr.cxx index e6c829adbe2c..9052458e84db 100644 --- a/basic/source/basmgr/basmgr.cxx +++ b/basic/source/basmgr/basmgr.cxx @@ -643,17 +643,17 @@ BasicLibInfo* BasicLibInfo::Create( SotStorageStream& rSStream ) // The name of the lib... String aName; - rSStream.ReadByteString(aName); + rSStream.ReadUniOrByteString(aName, rSStream.GetStreamCharSet()); pInfo->SetLibName( aName ); // Absolute path... String aStorageName; - rSStream.ReadByteString(aStorageName); + rSStream.ReadUniOrByteString(aStorageName, rSStream.GetStreamCharSet()); pInfo->SetStorageName( aStorageName ); // Relative path... String aRelStorageName; - rSStream.ReadByteString(aRelStorageName); + rSStream.ReadUniOrByteString(aRelStorageName, rSStream.GetStreamCharSet()); pInfo->SetRelStorageName( aRelStorageName ); if ( nVer >= 2 ) @@ -1041,7 +1041,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage ) } xManagerStream->Seek( nBasicEndOff+1 ); // +1: 0x00 as separator String aLibs; - xManagerStream->ReadByteString(aLibs); + xManagerStream->ReadUniOrByteString(aLibs, xManagerStream->GetStreamCharSet()); xManagerStream->SetBufferSize( 0 ); xManagerStream.Clear(); // Close stream @@ -1235,7 +1235,8 @@ sal_Bool BasicManager::ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurSt if ( ( nPasswordMarker == PASSWORD_MARKER ) && !xBasicStream->IsEof() ) { String aPassword; - xBasicStream->ReadByteString(aPassword); + xBasicStream->ReadUniOrByteString(aPassword, + xBasicStream->GetStreamCharSet()); pLibInfo->SetPassword( aPassword ); } xBasicStream->SetCryptMaskKey(rtl::OString()); diff --git a/basic/source/classes/image.cxx b/basic/source/classes/image.cxx index 1208184b5672..79b3765fa1fc 100644 --- a/basic/source/classes/image.cxx +++ b/basic/source/classes/image.cxx @@ -147,15 +147,15 @@ sal_Bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion ) switch( nSign ) { case B_NAME: - r.ReadByteString( aName, eCharSet ); + r.ReadUniOrByteString( aName, eCharSet ); break; case B_COMMENT: - r.ReadByteString( aComment, eCharSet ); + r.ReadUniOrByteString( aComment, eCharSet ); break; case B_SOURCE: { String aTmp; - r.ReadByteString( aTmp, eCharSet ); + r.ReadUniOrByteString( aTmp, eCharSet ); aOUSource = aTmp; break; } @@ -164,7 +164,7 @@ sal_Bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion ) for( sal_uInt16 j = 0 ; j < nCount ; j++ ) { String aTmp; - r.ReadByteString( aTmp, eCharSet ); + r.ReadUniOrByteString( aTmp, eCharSet ); aOUSource += aTmp; } break; @@ -274,14 +274,14 @@ sal_Bool SbiImage::Save( SvStream& r, sal_uInt32 nVer ) if( aName.Len() && SbiGood( r ) ) { nPos = SbiOpenRecord( r, B_NAME, 1 ); - r.WriteByteString( aName, eCharSet ); + r.WriteUniOrByteString( aName, eCharSet ); SbiCloseRecord( r, nPos ); } // Comment? if( aComment.Len() && SbiGood( r ) ) { nPos = SbiOpenRecord( r, B_COMMENT, 1 ); - r.WriteByteString( aComment, eCharSet ); + r.WriteUniOrByteString( aComment, eCharSet ); SbiCloseRecord( r, nPos ); } // Source? @@ -295,7 +295,7 @@ sal_Bool SbiImage::Save( SvStream& r, sal_uInt32 nVer ) aTmp = aOUSource.copy( 0, nMaxUnitSize ); else aTmp = aOUSource; - r.WriteByteString( aTmp, eCharSet ); + r.WriteUniOrByteString( aTmp, eCharSet ); SbiCloseRecord( r, nPos ); if( nLen > STRING_MAXLEN ) @@ -309,7 +309,7 @@ sal_Bool SbiImage::Save( SvStream& r, sal_uInt32 nVer ) (nRemainingLen > nMaxUnitSize) ? nMaxUnitSize : nRemainingLen; String aTmp2 = aOUSource.copy( (i+1) * nMaxUnitSize, nCopyLen ); nRemainingLen -= nCopyLen; - r.WriteByteString( aTmp2, eCharSet ); + r.WriteUniOrByteString( aTmp2, eCharSet ); } SbiCloseRecord( r, nPos ); } diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx index 07194fafc966..975ecc20a0a2 100644 --- a/basic/source/classes/sbxmod.cxx +++ b/basic/source/classes/sbxmod.cxx @@ -2002,7 +2002,7 @@ sal_Bool SbJScriptModule::LoadData( SvStream& rStrm, sal_uInt16 nVer ) // Get the source string String aTmp; - rStrm.ReadByteString( aTmp, osl_getThreadTextEncoding() ); + rStrm.ReadUniOrByteString( aTmp, osl_getThreadTextEncoding() ); aOUSource = aTmp; return sal_True; } @@ -2014,7 +2014,7 @@ sal_Bool SbJScriptModule::StoreData( SvStream& rStrm ) const // Write the source string String aTmp = aOUSource; - rStrm.WriteByteString( aTmp, osl_getThreadTextEncoding() ); + rStrm.WriteUniOrByteString( aTmp, osl_getThreadTextEncoding() ); return sal_True; } diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx index 2ff6990e215d..5b25252a780d 100644 --- a/basic/source/runtime/methods1.cxx +++ b/basic/source/runtime/methods1.cxx @@ -991,7 +991,7 @@ sal_Bool lcl_WriteSbxVariable( const SbxVariable& rVar, SvStream* pStrm, { if( bIsVariant ) *pStrm << (sal_uInt16)SbxSTRING; - pStrm->WriteByteString( rStr, osl_getThreadTextEncoding() ); + pStrm->WriteUniOrByteString( rStr, osl_getThreadTextEncoding() ); } else { @@ -1107,7 +1107,7 @@ sal_Bool lcl_ReadSbxVariable( SbxVariable& rVar, SvStream* pStrm, case SbxLPSTR: { String aStr; - pStrm->ReadByteString( aStr, osl_getThreadTextEncoding() ); + pStrm->ReadUniOrByteString( aStr, osl_getThreadTextEncoding() ); rVar.PutString( aStr ); } break; diff --git a/basic/source/sbx/sbxbase.cxx b/basic/source/sbx/sbxbase.cxx index 711efdcb5afc..7ab2d6c15b37 100644 --- a/basic/source/sbx/sbxbase.cxx +++ b/basic/source/sbx/sbxbase.cxx @@ -383,15 +383,18 @@ sal_Bool SbxInfo::LoadData( SvStream& rStrm, sal_uInt16 nVer ) { aParams.Remove( 0, aParams.Count() ); sal_uInt16 nParam; - rStrm.ReadByteString( aComment, RTL_TEXTENCODING_ASCII_US ); - rStrm.ReadByteString( aHelpFile, RTL_TEXTENCODING_ASCII_US ); + aComment = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); + aHelpFile = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); rStrm >> nHelpId >> nParam; while( nParam-- ) { XubString aName; sal_uInt16 nType, nFlags; sal_uInt32 nUserData = 0; - rStrm.ReadByteString( aName, RTL_TEXTENCODING_ASCII_US ); + aName = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); rStrm >> nType >> nFlags; if( nVer > 1 ) rStrm >> nUserData; @@ -404,13 +407,16 @@ sal_Bool SbxInfo::LoadData( SvStream& rStrm, sal_uInt16 nVer ) sal_Bool SbxInfo::StoreData( SvStream& rStrm ) const { - rStrm.WriteByteString( aComment, RTL_TEXTENCODING_ASCII_US ); - rStrm.WriteByteString( aHelpFile, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aComment, + RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aHelpFile, + RTL_TEXTENCODING_ASCII_US); rStrm << nHelpId << aParams.Count(); for( sal_uInt16 i = 0; i < aParams.Count(); i++ ) { SbxParamInfo* p = aParams.GetObject( i ); - rStrm.WriteByteString( p->aName, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, p->aName, + RTL_TEXTENCODING_ASCII_US); rStrm << (sal_uInt16) p->eType << (sal_uInt16) p->nFlags << (sal_uInt32) p->nUserData; diff --git a/basic/source/sbx/sbxcoll.cxx b/basic/source/sbx/sbxcoll.cxx index 7803ee013b2f..97573876064c 100644 --- a/basic/source/sbx/sbxcoll.cxx +++ b/basic/source/sbx/sbxcoll.cxx @@ -279,7 +279,8 @@ sal_Bool SbxStdCollection::LoadData( SvStream& rStrm, sal_uInt16 nVer ) sal_Bool bRes = SbxCollection::LoadData( rStrm, nVer ); if( bRes ) { - rStrm.ReadByteString( aElemClass, RTL_TEXTENCODING_ASCII_US ); + aElemClass = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); rStrm >> bAddRemoveOk; } return bRes; @@ -290,7 +291,8 @@ sal_Bool SbxStdCollection::StoreData( SvStream& rStrm ) const sal_Bool bRes = SbxCollection::StoreData( rStrm ); if( bRes ) { - rStrm.WriteByteString( aElemClass, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aElemClass, + RTL_TEXTENCODING_ASCII_US); rStrm << bAddRemoveOk; } return bRes; diff --git a/basic/source/sbx/sbxobj.cxx b/basic/source/sbx/sbxobj.cxx index 81574efd0fba..0c98fca20049 100644 --- a/basic/source/sbx/sbxobj.cxx +++ b/basic/source/sbx/sbxobj.cxx @@ -591,8 +591,10 @@ sal_Bool SbxObject::LoadData( SvStream& rStrm, sal_uInt16 nVer ) aData.pObj = this; sal_uInt32 nSize; XubString aDfltProp; - rStrm.ReadByteString( aClassName, RTL_TEXTENCODING_ASCII_US ); - rStrm.ReadByteString( aDfltProp, RTL_TEXTENCODING_ASCII_US ); + aClassName = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); + aDfltProp = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); sal_uIntPtr nPos = rStrm.Tell(); rStrm >> nSize; if( !LoadPrivateData( rStrm, nVer ) ) @@ -620,8 +622,8 @@ sal_Bool SbxObject::StoreData( SvStream& rStrm ) const XubString aDfltProp; if( pDfltProp ) aDfltProp = pDfltProp->GetName(); - rStrm.WriteByteString( aClassName, RTL_TEXTENCODING_ASCII_US ); - rStrm.WriteByteString( aDfltProp, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aClassName, RTL_TEXTENCODING_ASCII_US); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aDfltProp, RTL_TEXTENCODING_ASCII_US); sal_uIntPtr nPos = rStrm.Tell(); rStrm << (sal_uInt32) 0L; if( !StorePrivateData( rStrm ) ) @@ -797,7 +799,7 @@ void SbxObject::Dump( SvStream& rStrm, sal_Bool bFill ) aLine += aAttrs2; if( !pVar->IsA( TYPE(SbxMethod) ) ) aLine.AppendAscii( " !! Not a Method !!" ); - rStrm.WriteByteString( aLine, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aLine, RTL_TEXTENCODING_ASCII_US); // Output also the object at object-methods if ( pVar->GetValues_Impl().eType == SbxOBJECT && @@ -830,7 +832,7 @@ void SbxObject::Dump( SvStream& rStrm, sal_Bool bFill ) aLine += aAttrs3; if( !pVar->IsA( TYPE(SbxProperty) ) ) aLine.AppendAscii( " !! Not a Property !!" ); - rStrm.WriteByteString( aLine, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, aLine, RTL_TEXTENCODING_ASCII_US); // output also the object at object properties if ( pVar->GetValues_Impl().eType == SbxOBJECT && diff --git a/basic/source/sbx/sbxvalue.cxx b/basic/source/sbx/sbxvalue.cxx index 0d6aa84e19c7..692959aa9c18 100644 --- a/basic/source/sbx/sbxvalue.cxx +++ b/basic/source/sbx/sbxvalue.cxx @@ -1479,8 +1479,8 @@ sal_Bool SbxValue::LoadData( SvStream& r, sal_uInt16 ) case SbxSINGLE: { // Floats as ASCII - XubString aVal; - r.ReadByteString( aVal, RTL_TEXTENCODING_ASCII_US ); + XubString aVal = read_lenPrefixed_uInt8s_ToOUString(r, + RTL_TEXTENCODING_ASCII_US); double d; SbxDataType t; if( ImpScan( aVal, d, t, NULL ) != SbxERR_OK || t == SbxDOUBLE ) @@ -1495,8 +1495,8 @@ sal_Bool SbxValue::LoadData( SvStream& r, sal_uInt16 ) case SbxDOUBLE: { // Floats as ASCII - XubString aVal; - r.ReadByteString( aVal, RTL_TEXTENCODING_ASCII_US ); + XubString aVal = read_lenPrefixed_uInt8s_ToOUString(r, + RTL_TEXTENCODING_ASCII_US); SbxDataType t; if( ImpScan( aVal, aData.nDouble, t, NULL ) != SbxERR_OK ) { @@ -1524,9 +1524,9 @@ sal_Bool SbxValue::LoadData( SvStream& r, sal_uInt16 ) } case SbxSTRING: { - XubString aVal; - r.ReadByteString( aVal, RTL_TEXTENCODING_ASCII_US ); - if( aVal.Len() ) + rtl::OUString aVal = read_lenPrefixed_uInt8s_ToOUString(r, + RTL_TEXTENCODING_ASCII_US); + if( aVal.getLength() ) aData.pOUString = new ::rtl::OUString( aVal ); else aData.pOUString = NULL; // JSM 1995-09-22 @@ -1621,12 +1621,12 @@ sal_Bool SbxValue::StoreData( SvStream& r ) const case SbxDATE: // #49935: Save as double, elsewise an error during the read in ((SbxValue*)this)->aData.eType = (SbxDataType)( ( nType & 0xF000 ) | SbxDOUBLE ); - r.WriteByteString( GetCoreString(), RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(r, GetCoreString(), RTL_TEXTENCODING_ASCII_US); ((SbxValue*)this)->aData.eType = (SbxDataType)nType; break; case SbxSINGLE: case SbxDOUBLE: - r.WriteByteString( GetCoreString(), RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(r, GetCoreString(), RTL_TEXTENCODING_ASCII_US); break; case SbxSALUINT64: case SbxSALINT64: @@ -1643,12 +1643,11 @@ sal_Bool SbxValue::StoreData( SvStream& r ) const case SbxSTRING: if( aData.pOUString ) { - r.WriteByteString( *aData.pOUString, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(r, *aData.pOUString, RTL_TEXTENCODING_ASCII_US); } else { - String aEmpty; - r.WriteByteString( aEmpty, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(r, rtl::OUString(), RTL_TEXTENCODING_ASCII_US); } break; case SbxERROR: diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx index 58b3cb73f9d4..6ca253355603 100644 --- a/basic/source/sbx/sbxvar.cxx +++ b/basic/source/sbx/sbxvar.cxx @@ -445,7 +445,8 @@ sal_Bool SbxVariable::LoadData( SvStream& rStrm, sal_uInt16 nVer ) { if( !SbxValue::LoadData( rStrm, nVer ) ) return sal_False; - rStrm.ReadByteString( maName, RTL_TEXTENCODING_ASCII_US ); + maName = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); sal_uInt32 nTemp; rStrm >> nTemp; nUserData = nTemp; @@ -454,7 +455,8 @@ sal_Bool SbxVariable::LoadData( SvStream& rStrm, sal_uInt16 nVer ) { rStrm.SeekRel( -1L ); rStrm >> nType; - rStrm.ReadByteString( maName, RTL_TEXTENCODING_ASCII_US ); + maName = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); sal_uInt32 nTemp; rStrm >> nTemp; nUserData = nTemp; @@ -477,7 +479,8 @@ sal_Bool SbxVariable::LoadData( SvStream& rStrm, sal_uInt16 nVer ) case SbxSINGLE: { // Floats as ASCII - rStrm.ReadByteString( aTmpString, RTL_TEXTENCODING_ASCII_US ); + aTmpString = read_lenPrefixed_uInt8s_ToOUString( + rStrm, RTL_TEXTENCODING_ASCII_US); double d; SbxDataType t; if( ImpScan( aTmpString, d, t, NULL ) != SbxERR_OK || t == SbxDOUBLE ) @@ -492,7 +495,8 @@ sal_Bool SbxVariable::LoadData( SvStream& rStrm, sal_uInt16 nVer ) case SbxDOUBLE: { // Floats as ASCII - rStrm.ReadByteString( aTmpString, RTL_TEXTENCODING_ASCII_US ); + aTmpString = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); SbxDataType t; if( ImpScan( aTmpString, aTmp.nDouble, t, NULL ) != SbxERR_OK ) { @@ -502,8 +506,8 @@ sal_Bool SbxVariable::LoadData( SvStream& rStrm, sal_uInt16 nVer ) break; } case SbxSTRING: - rStrm.ReadByteString( aTmpString, RTL_TEXTENCODING_ASCII_US ); - aVal = aTmpString; + aVal = read_lenPrefixed_uInt8s_ToOUString(rStrm, + RTL_TEXTENCODING_ASCII_US); break; case SbxEMPTY: case SbxNULL: @@ -561,7 +565,8 @@ sal_Bool SbxVariable::StoreData( SvStream& rStrm ) const bValStore = SbxValue::StoreData( rStrm ); if( !bValStore ) return sal_False; - rStrm.WriteByteString( maName, RTL_TEXTENCODING_ASCII_US ); + write_lenPrefixed_uInt8s_FromOUString(rStrm, maName, + RTL_TEXTENCODING_ASCII_US); rStrm << (sal_uInt32)nUserData; if( pInfo.Is() ) { -- cgit