cppcanvas/source/mtfrenderer/emfplus.cxx | 2 +- editeng/source/items/textitem.cxx | 2 +- filter/source/msfilter/svdfppt.cxx | 2 +- include/tools/stream.hxx | 1 + sd/source/filter/ppt/pptin.cxx | 2 +- sd/source/filter/ppt/propread.cxx | 6 +++--- sot/source/sdstor/stgelem.cxx | 2 +- sot/source/sdstor/stgelem.hxx | 2 +- starmath/source/mathtype.cxx | 2 +- sw/source/filter/ww8/ww8scan.cxx | 2 +- tools/source/stream/stream.cxx | 13 +++++++++++++ 11 files changed, 25 insertions(+), 11 deletions(-)
New commits: commit 61f168d98750549107a65e846fbe5c49f277295e Author: Stephan Bergmann <sberg...@redhat.com> Date: Tue Nov 17 10:36:13 2015 +0100 Add SvStream::ReadUtf16 (don't assume sal_Unicode is unsigned short) Change-Id: I74f34e3389582617fa83f8f4a3d6867cf87189e1 diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx index 1438c18..56370f1 100644 --- a/cppcanvas/source/mtfrenderer/emfplus.cxx +++ b/cppcanvas/source/mtfrenderer/emfplus.cxx @@ -1185,7 +1185,7 @@ namespace cppcanvas sal_Unicode *chars = static_cast<sal_Unicode *>(alloca( sizeof( sal_Unicode ) * length )); for( sal_uInt32 i = 0; i < length; i++ ) - s.ReadUInt16( chars[ i ] ); + s.ReadUtf16( chars[ i ] ); family = OUString( chars, length ); SAL_INFO("cppcanvas.emf", "EMF+\tfamily: " << OUStringToOString( family, RTL_TEXTENCODING_UTF8).getStr()); // TODO: can we just use family? diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx index 69a6ca7..1ab854c 100644 --- a/editeng/source/items/textitem.cxx +++ b/editeng/source/items/textitem.cxx @@ -3001,7 +3001,7 @@ SfxPoolItem* SvxTwoLinesItem::Create( SvStream & rStrm, sal_uInt16 /*nVer*/) con { bool _bOn; sal_Unicode cStart, cEnd; - rStrm.ReadCharAsBool( _bOn ).ReadUInt16( cStart ).ReadUInt16( cEnd ); + rStrm.ReadCharAsBool( _bOn ).ReadUtf16( cStart ).ReadUtf16( cEnd ); return new SvxTwoLinesItem( _bOn, cStart, cEnd, Which() ); } diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 4ceacdb..dadaad7 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -6749,7 +6749,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport for (int nLen = 0; nLen < 64; ++nLen) { sal_Unicode n(0); - rIn.ReadUInt16( n ); + rIn.ReadUtf16( n ); // Collect quoted characters into aStr if ( n == '\'') diff --git a/include/tools/stream.hxx b/include/tools/stream.hxx index 6e0ecb8..9b7182c 100644 --- a/include/tools/stream.hxx +++ b/include/tools/stream.hxx @@ -283,6 +283,7 @@ public: SvStream& ReadSChar( signed char& rChar ); SvStream& ReadChar( char& rChar ); SvStream& ReadUChar( unsigned char& rChar ); + SvStream& ReadUtf16( sal_Unicode& rUtf16 ); SvStream& ReadCharAsBool( bool& rBool ); SvStream& ReadFloat( float& rFloat ); SvStream& ReadDouble( double& rDouble ); diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 820408c..5a1084a 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -1353,7 +1353,7 @@ bool ImplSdPPTImport::Import() sal_Unicode nChar; for ( sal_uInt32 i2 = 0; i2 < 32; i2++ ) { - rStCtrl.ReadUInt16( nChar ); + rStCtrl.ReadUtf16( nChar ); if ( nChar ) aCustomShow.append( nChar ); else diff --git a/sd/source/filter/ppt/propread.cxx b/sd/source/filter/ppt/propread.cxx index 2a3c092..6bf66d5 100644 --- a/sd/source/filter/ppt/propread.cxx +++ b/sd/source/filter/ppt/propread.cxx @@ -116,7 +116,7 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) { sal_Unicode* pWString = reinterpret_cast<sal_Unicode*>(pString); for (sal_uInt32 i = 0; i < nItemSize; ++i) - ReadUInt16( pWString[ i ] ); + ReadUtf16( pWString[ i ] ); rString = OUString(pWString, lcl_getMaxSafeStrLen(nItemSize)); } else @@ -165,7 +165,7 @@ bool PropItem::Read( OUString& rString, sal_uInt32 nStringType, bool bAlign ) { sal_Unicode* pString = new sal_Unicode[ nItemSize ]; for (sal_uInt32 i = 0; i < nItemSize; ++i) - ReadUInt16( pString[ i ] ); + ReadUtf16( pString[ i ] ); if ( pString[ nItemSize - 1 ] == 0 ) { if ( (sal_uInt16)nItemSize > 1 ) @@ -304,7 +304,7 @@ void Section::GetDictionary(Dictionary& rDict) { sal_Unicode* pWString = new sal_Unicode[nSize]; for (sal_uInt32 j = 0; j < nSize; ++j) - aStream.ReadUInt16(pWString[j]); + aStream.ReadUtf16(pWString[j]); aString = OUString(pWString, lcl_getMaxSafeStrLen(nSize)); delete[] pWString; } diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx index ec5439e..356edc5 100644 --- a/sot/source/sdstor/stgelem.cxx +++ b/sot/source/sdstor/stgelem.cxx @@ -368,7 +368,7 @@ bool StgEntry::Load(const void* pFrom, sal_uInt32 nBufSize, sal_uInt64 nUnderlyi SvMemoryStream r( const_cast<void *>(pFrom), nBufSize, StreamMode::READ ); for( short i = 0; i < 32; i++ ) - r.ReadUInt16( m_nName[ i ] ); // 00 name as WCHAR + r.ReadUtf16( m_nName[ i ] ); // 00 name as WCHAR r.ReadUInt16( m_nNameLen ) // 40 size of name in bytes including 00H .ReadUChar( m_cType ) // 42 entry type .ReadUChar( m_cFlags ) // 43 0 or 1 (tree balance?) diff --git a/sot/source/sdstor/stgelem.hxx b/sot/source/sdstor/stgelem.hxx index 3972f80..790fadd 100644 --- a/sot/source/sdstor/stgelem.hxx +++ b/sot/source/sdstor/stgelem.hxx @@ -108,7 +108,7 @@ enum StgEntryTime { // time codes: //StructuredStorageDirectoryEntry class StgEntry { // directory entry - sal_uInt16 m_nName[ 32 ]; // 00 name as WCHAR + sal_Unicode m_nName[ 32 ]; // 00 name as WCHAR sal_uInt16 m_nNameLen; // 40 size of name in bytes including 00H sal_uInt8 m_cType; // 42 entry type sal_uInt8 m_cFlags; // 43 0 or 1 (tree balance?) diff --git a/starmath/source/mathtype.cxx b/starmath/source/mathtype.cxx index 804de72..9cc65c0 100644 --- a/starmath/source/mathtype.cxx +++ b/starmath/source/mathtype.cxx @@ -2867,7 +2867,7 @@ int MathType::HandleChar(sal_Int32 &rTextStart,int &rSetSize,int nLevel, nChar = nChar8; } else - pS->ReadUInt16( nChar ); + pS->ReadUtf16( nChar ); /* bad character, old mathtype < 3 has these diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index 350d9ab..7a82746 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -89,7 +89,7 @@ namespace if (rStrm.good()) { sal_Unicode cBraces(0); - rStrm.ReadUInt16( cBraces ); + rStrm.ReadUtf16( cBraces ); if (rStrm.good() && cBraces == 0) bRet = true; } diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx index c6d8b2a..6ad0a06 100644 --- a/tools/source/stream/stream.cxx +++ b/tools/source/stream/stream.cxx @@ -989,6 +989,19 @@ SvStream& SvStream::ReadUChar( unsigned char& r ) return *this; } +SvStream& SvStream::ReadUtf16(sal_Unicode& r) +{ + sal_uInt16 n = 0; + READNUMBER_WITHOUT_SWAP(sal_uInt16, n) + if (good()) + { + if (m_isSwap) + SwapUShort(n); + r = sal_Unicode(n); + } + return *this; +} + SvStream& SvStream::ReadCharAsBool( bool& r ) { if ((m_isIoRead || !m_isConsistent) && _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits