diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2019-11-26 15:56:30 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@cib.de> | 2019-11-26 19:18:07 +0100 |
commit | 10d72337640677e2d49b522a734728646c9b8e96 (patch) | |
tree | 456a03f93b91d500dc68c2477a77202f449bc831 /sw/source/filter/ww8/ww8par5.cxx | |
parent | 87156783e5bc89709a1933efbbde82817715d5dc (diff) |
sw: WW8 import: fix again asserts on fdo45983-1.doc export to ODT
The problem is that we now insert 2 dummy characters at the start of a
fieldmark instead of 1, so the checks in RedlineStack::MoveAttrs()
were off by 1 and we get the same invalid redline containing the start
but not the end of a fieldmark.
(regression from 7f2e61f884949ab27bcb7e1a02ece9a5cb4354b9)
Change-Id: I9752ca4c3a281539e37ddac4fe811e2f9d7374a6
Reviewed-on: https://gerrit.libreoffice.org/83783
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'sw/source/filter/ww8/ww8par5.cxx')
-rw-r--r-- | sw/source/filter/ww8/ww8par5.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index e6f31bb0736a..ea0a435371a3 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -542,7 +542,8 @@ sal_uInt16 SwWW8ImplReader::End_Field() if (pFieldmark!=nullptr) { // adapt redline positions to inserted field mark start // dummy char (assume not necessary for end dummy char) - m_xRedlineStack->MoveAttrs(*aFieldPam.Start()); + m_xRedlineStack->MoveAttrs(*aFieldPam.Start(), + RedlineStack::MoveAttrsMode::FieldmarkInserted); const IFieldmark::parameter_map_t& rParametersToAdd = m_aFieldStack.back().getParameters(); pFieldmark->GetParameters()->insert(rParametersToAdd.begin(), rParametersToAdd.end()); } @@ -642,7 +643,8 @@ sal_uInt16 SwWW8ImplReader::End_Field() { // adapt redline positions to inserted field mark start // dummy char (assume not necessary for end dummy char) - m_xRedlineStack->MoveAttrs(*aFieldPam.Start()); + m_xRedlineStack->MoveAttrs(*aFieldPam.Start(), + RedlineStack::MoveAttrsMode::FieldmarkInserted); const IFieldmark::parameter_map_t& rParametersToAdd = m_aFieldStack.back().getParameters(); pFieldmark->GetParameters()->insert(rParametersToAdd.begin(), rParametersToAdd.end()); OUString sFieldId = OUString::number( m_aFieldStack.back().mnFieldId ); |