summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-12-19 22:19:52 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-12-21 10:10:58 +0000
commitd00fc0e293852cfc019ffaffa65bee327397677b (patch)
tree3b28b98fb451bee33eff7c06a93dbb4063f07554 /basic
parent92f396733ebc518bcb7a9eae2dd3169d333b82b9 (diff)
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
Diffstat (limited to 'basic')
-rw-r--r--basic/source/basmgr/basmgr.cxx11
-rw-r--r--basic/source/classes/image.cxx16
-rw-r--r--basic/source/classes/sbxmod.cxx4
-rw-r--r--basic/source/runtime/methods1.cxx4
-rw-r--r--basic/source/sbx/sbxbase.cxx18
-rw-r--r--basic/source/sbx/sbxcoll.cxx6
-rw-r--r--basic/source/sbx/sbxobj.cxx14
-rw-r--r--basic/source/sbx/sbxvalue.cxx23
-rw-r--r--basic/source/sbx/sbxvar.cxx19
9 files changed, 65 insertions, 50 deletions
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() )
{