sw/qa/extras/ww8import/data/cp1000039.doc |binary sw/qa/extras/ww8import/ww8import.cxx | 8 ++++++++ sw/source/filter/ww8/ww8par6.cxx | 5 +++++ 3 files changed, 13 insertions(+)
New commits: commit b9f545fc6d8ec93d2e2ce597c1f7b373e9e5b342 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Mar 6 09:48:54 2014 +0100 cp#1000039 DOC import: ignore symbol charset of the symbol font Otherwise characters unhandled by our OpenSymbol font (like Arabic 0-9 numbers) won't be rendered using an other font, as no other font provides the symbol charset. Do this in SwWW8ImplReader::GetFontParams(), where we already have font name -> font family mappings for a few well-known fonts. The DOCX filter does the same for quite some time, and that's how Arabic numbers in text using the Symbol font were rendered, instead of little rectangles. (cherry picked from commit 8556cd881270823865662e9a7700da58d11c2785) Conflicts: sw/qa/extras/ww8import/ww8import.cxx sw/source/filter/ww8/ww8par6.cxx Change-Id: Ib794cac19ad7b073e39f3cbd7d4bad3994151c14 diff --git a/sw/qa/extras/ww8import/data/cp1000039.doc b/sw/qa/extras/ww8import/data/cp1000039.doc new file mode 100755 index 0000000..70cad3c Binary files /dev/null and b/sw/qa/extras/ww8import/data/cp1000039.doc differ diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx index e98055a..97655bb 100644 --- a/sw/qa/extras/ww8import/ww8import.cxx +++ b/sw/qa/extras/ww8import/ww8import.cxx @@ -37,6 +37,7 @@ public: void testN823651(); void testFdo36868(); void testListNolevel(); + void testCp1000039(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -65,6 +66,7 @@ void Test::run() {"n823651.doc", &Test::testN823651}, {"fdo36868.doc", &Test::testFdo36868}, {"list-nolevel.doc", &Test::testListNolevel}, + {"cp1000039.doc", &Test::testCp1000039}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -284,6 +286,12 @@ void Test::testListNolevel() CPPUNIT_ASSERT_EQUAL(OUString("1."), aText); } +void Test::testCp1000039() +{ + // This was RTL_TEXTENCODING_SYMBOL, causing "1" rendered as a placeholder rectangle. + CPPUNIT_ASSERT_EQUAL(sal_Int16(RTL_TEXTENCODING_DONTKNOW), getProperty<sal_Int16>(getRun(getParagraph(1), 1), "CharFontCharSet")); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 49fd40e..8b399d1 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -3350,6 +3350,11 @@ bool SwWW8ImplReader::GetFontParams( sal_uInt16 nFCode, FontFamily& reFamily, // pF->ff : Family sal_uInt8 b = pF->ff; + // Make sure charset is not set in case of Symbol, otherwise in case a + // character is missing in our OpenSymbol, the character won't be replaced. + if (reCharSet == RTL_TEXTENCODING_SYMBOL && rName == "Symbol") + reCharSet = RTL_TEXTENCODING_DONTKNOW; + // make sure Font Family Code is set correctly // at least for the most important fonts // ( might be set wrong when Doc was not created by _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits