From 0168eecdf10f497e8ce19442d17dfb100cc1efcb Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 8 Nov 2017 14:02:11 +0000 Subject: crashtesting: assert on re-export of fdo55459-1.docx to docx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit since... commit 3f2e84b4bd0bbd936e0af845ba7cbf68cb2803d6 Date: Tue Oct 31 23:39:26 2017 +0100 tdf#38778 Fix output of the font in DOC run The font information should be output before field declaration. Added unit test. tdf#38778 DOCX output: no double output of the font info need to also not double output the complex script font info as well as the western and asian info Change-Id: I7de098dff0b787b9825a509cec19d0161a3a0d8a Reviewed-on: https://gerrit.libreoffice.org/44465 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/source/filter/ww8/docxattributeoutput.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sw') diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 048bafc1d194..d844268dbff3 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -6931,6 +6931,14 @@ void DocxAttributeOutput::CharWeightCJK( const SvxWeightItem& rWeight ) void DocxAttributeOutput::CharFontCTL( const SvxFontItem& rFont ) { + if (m_pFontsAttrList && m_pFontsAttrList->hasAttribute(FSNS(XML_w, XML_cs))) + { + // tdf#38778: do to fields output into DOC the font could be added before and after field declaration + // that all sub runs of the field will have correct font inside. + // For DOCX we should do not add the same font information twice in the same node + return; + } + const OUString& sFontName(rFont.GetFamilyName()); OString sFontNameUtf8 = OUStringToOString(sFontName, RTL_TEXTENCODING_UTF8); AddToAttrList( m_pFontsAttrList, FSNS( XML_w, XML_cs ), sFontNameUtf8.getStr() ); -- cgit