summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-10-22 22:35:01 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-10-22 22:45:15 +0200
commit013ec10d4e89e86cbd53a88058defb7e97ebaa49 (patch)
treef15e3d621fc498b2cef85da47c1ceec3e0659c8f /writerfilter
parent9f06a0988d39dddcd14c9424dd48e2990cf8351f (diff)
i#84172 RTF import: handle nested groups inside redlines
The problem was that in case we had {\revised foo {bar}}, then we only started a redline before "foo", but we ended it twice: during handling of both "}". Make sure that the end of the redline is only handled by the second one. Change-Id: I41ab8b486e8615d3479fa0fadd6016476859b4b2
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/qa/cppunittests/rtftok/data/pass/i84172.rtf11
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx5
2 files changed, 16 insertions, 0 deletions
diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/i84172.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/i84172.rtf
new file mode 100644
index 000000000000..ce6616e5e6a5
--- /dev/null
+++ b/writerfilter/qa/cppunittests/rtftok/data/pass/i84172.rtf
@@ -0,0 +1,11 @@
+{\rtf1
+{\*\revtbl
+{Unknown;}
+}
+\par \pard\plain
+{
+{\revised\revauth1\revdttm-1497631607 foo
+{bar}
+}
+}
+}
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index d01f85c1d733..9bdeee8dc2d4 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -4877,6 +4877,11 @@ int RTFDocumentImpl::pushState()
break;
}
+ // If this is true, then ooxml:endtrackchange will be generated. Make sure
+ // we don't generate more ooxml:endtrackchange than ooxml:trackchange: new
+ // state does not inherit this flag.
+ m_aStates.top().bStartedTrackchange = false;
+
return 0;
}