diff options
author | Michael Stahl <mstahl@redhat.com> | 2017-04-07 22:29:15 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2017-04-07 22:52:54 +0200 |
commit | 69b7204164945cfed385d58e64592ce1b17937d7 (patch) | |
tree | 0ae8b6f8432150f71816fec09fead4b296de6adf | |
parent | a1147a34d85742fd5d9410efac6fc59ac2fd1574 (diff) |
tdf#106692 writerfilter: RTF import: fix \'0d in \leveltext
It's not a newline but yet another one of those bizarre RTF-encodings.
(regression from 10e733908038407791f9c14af2a86417cc4a653c)
Change-Id: I568050b031b95ac0b6ebfa1a0c39107e62f68bed
-rw-r--r-- | sw/qa/extras/rtfimport/data/hexcrlf.rtf | 6 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sw/qa/extras/rtfimport/data/hexcrlf.rtf b/sw/qa/extras/rtfimport/data/hexcrlf.rtf index 7c7ed1a9b5f8..1aaa0839c7eb 100644 --- a/sw/qa/extras/rtfimport/data/hexcrlf.rtf +++ b/sw/qa/extras/rtfimport/data/hexcrlf.rtf @@ -1,4 +1,10 @@ {\rtf1 +{\*\listtable +{\list\listtemplateid1 +{\listlevel{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}} +{\listname Heading;}\listid1199164 +}} + foo\'0dba r\'0abaz\'0d\'0aquux \par } diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index fe35afe1d372..adf0a80c6956 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -1123,8 +1123,10 @@ RTFError RTFDocumentImpl::resolveChars(char ch) if (!bSkipped) { // note: apparently \'0d\'0a is interpreted as 2 breaks, not 1 - if (m_aStates.top().eDestination != Destination::DOCCOMM - && (ch == '\r' || ch == '\n')) + if ((ch == '\r' || ch == '\n') + && m_aStates.top().eDestination != Destination::DOCCOMM + && m_aStates.top().eDestination != Destination::LEVELNUMBERS + && m_aStates.top().eDestination != Destination::LEVELTEXT) { checkUnicode(/*bUnicode =*/ false, /*bHex =*/ true); dispatchSymbol(RTF_PAR); |