summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/wrtw8nds.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww8/wrtw8nds.cxx')
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx23
1 files changed, 23 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
index 87c27db44c89..23208e90a8fc 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -1173,6 +1173,25 @@ void SwWW8AttrIter::OutSwFormatRefMark(const SwFormatRefMark& rAttr)
&rAttr.GetRefName(), 0 ));
}
+void SwWW8AttrIter::SplitRun( sal_Int32 nSplitEndPos )
+{
+ for(auto aIter = maCharRuns.begin(); aIter != maCharRuns.end(); ++aIter)
+ {
+ if(aIter->mnEndPos == nSplitEndPos)
+ return;
+ else if (aIter->mnEndPos > nSplitEndPos)
+ {
+ CharRunEntry aNewEntry = *aIter;
+ aIter->mnEndPos = nSplitEndPos;
+ maCharRuns.insert( ++aIter, aNewEntry);
+ maCharRunIter = maCharRuns.begin();
+ IterToCurrent();
+ nAktSwPos = SearchNext(1);
+ break;
+ }
+ }
+}
+
void WW8AttributeOutput::FieldVanish( const OUString& rText, ww::eField /*eType*/ )
{
ww::bytes aItems;
@@ -2163,6 +2182,10 @@ void MSWordExportBase::OutputTextNode( SwTextNode& rNode )
AppendBookmark( BookmarkToWord( sBkmkName ) );
}
+ // Call this before write out fields and runs
+ if(GetExportFormat() == ExportFormat::DOCX)
+ AttrOutput().GenerateBookmarksForSequenceField(rNode, aAttrIter);
+
const OUString& aStr( rNode.GetText() );
sal_Int32 nAktPos = 0;