summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww1
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww1')
-rw-r--r--sw/source/filter/ww1/w1class.cxx14
1 files changed, 8 insertions, 6 deletions
diff --git a/sw/source/filter/ww1/w1class.cxx b/sw/source/filter/ww1/w1class.cxx
index 1648b906eef2..2e826e364aa7 100644
--- a/sw/source/filter/ww1/w1class.cxx
+++ b/sw/source/filter/ww1/w1class.cxx
@@ -81,13 +81,15 @@ sal_Unicode Ww1PlainText::operator [] ( sal_uLong ulOffset )
String Ww1PlainText::GetText( sal_uLong ulOffset, sal_uLong nLen ) const
{
- String sRet;
- ByteString aStr;
OSL_ENSURE(ulOffset+nLen<Count(), "Ww1PlainText");
- if( rFib.GetStream().Seek(ulFilePos+ulOffset) == ulFilePos+ulOffset &&
- rFib.GetStream().Read( aStr.AllocBuffer( static_cast< xub_StrLen >(nLen) ), nLen ) == nLen )
- sRet = String( aStr, RTL_TEXTENCODING_MS_1252 );
- return sRet;
+
+ sal_Size nPos = ulFilePos+ulOffset;
+
+ bool bSeekOk = rFib.GetStream().Seek(nPos) == nPos;
+ rtl::OString a8BitStr = bSeekOk ?
+ read_uInt8s_AsOString(rFib.GetStream(), nLen) :
+ rtl::OString();
+ return rtl::OStringToOUString(a8BitStr, RTL_TEXTENCODING_MS_1252);
}
///////////////////////////////////////////////////////////////// Style