[Libreoffice-commits] .: writerfilter/source

Miklos Vajna vmiklos at kemper.freedesktop.org
Wed Feb 22 08:13:24 PST 2012


 writerfilter/source/rtftok/rtfdocumentimpl.cxx |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 0915f1b3d77afa694a2ca692aec307846827da99
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Wed Feb 22 17:06:18 2012 +0100

    fdo#42465 fix RTF import of unicode characters with backwards compatibility

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 581f912..f293bf6 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;
     }
 


More information about the Libreoffice-commits mailing list