From 0915f1b3d77afa694a2ca692aec307846827da99 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Wed, 22 Feb 2012 17:06:18 +0100 Subject: fdo#42465 fix RTF import of unicode characters with backwards compatibility --- writerfilter/source/rtftok/rtfdocumentimpl.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 581f9123f8ad..f293bf6a10ba 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -732,6 +732,7 @@ int RTFDocumentImpl::resolveChars(char ch) OStringBuffer aBuf; bool bUnicodeChecked = false; + bool bSkipped = false; while(!Strm().IsEof() && ch != '{' && ch != '}' && ch != '\\') { if (ch != 0x0d && ch != 0x0a) @@ -746,7 +747,10 @@ int RTFDocumentImpl::resolveChars(char ch) aBuf.append(ch); } else + { + bSkipped = true; m_aStates.top().nCharsToSkip--; + } } // read a single char if we're in hex mode if (m_aStates.top().nInternalState == INTERNAL_HEX) @@ -758,7 +762,8 @@ int RTFDocumentImpl::resolveChars(char ch) if (m_aStates.top().nInternalState == INTERNAL_HEX) { - m_aHexBuffer.append(ch); + if (!bSkipped) + m_aHexBuffer.append(ch); return 0; } -- cgit