diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-03-04 11:22:09 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-05-15 10:00:48 +0200 |
commit | 0172f58071be13178a9fd5d6a7e1143d5a2edf23 (patch) | |
tree | 2c48edc4d6d268701ae2af1cf2afe89a944e34f0 | |
parent | [cp] switch to Collabora's help instance (diff) | |
download | core-0172f58071be13178a9fd5d6a7e1143d5a2edf23.tar.gz core-0172f58071be13178a9fd5d6a7e1143d5a2edf23.zip |
sw padded numbering: add DOC filter
[MS-OSHARED] 2.2.1.3 MSONFC says msonfcArabicLZ / 0x16 should be used
for this.
(cherry picked from commit a8a5fc175a8af2bf3750497d7ebe2c8ea9176981)
Change-Id: I6bdf460d77acabf54cecc2ec2d2bca91bc814518
-rw-r--r-- | sw/qa/extras/ww8export/data/arabic-zero-numbering.doc | bin | 0 -> 10752 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export3.cxx | 13 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8num.cxx | 4 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par3.cxx | 4 |
4 files changed, 21 insertions, 0 deletions
diff --git a/sw/qa/extras/ww8export/data/arabic-zero-numbering.doc b/sw/qa/extras/ww8export/data/arabic-zero-numbering.doc Binary files differnew file mode 100644 index 000000000000..c198c4aa44d0 --- /dev/null +++ b/sw/qa/extras/ww8export/data/arabic-zero-numbering.doc diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx index d4a65e685f4a..925af30ba55e 100644 --- a/sw/qa/extras/ww8export/ww8export3.cxx +++ b/sw/qa/extras/ww8export/ww8export3.cxx @@ -51,6 +51,19 @@ DECLARE_WW8EXPORT_TEST(testTdf37778_readonlySection, "tdf37778_readonlySection.d CPPUNIT_ASSERT(drawing::FillStyle_NONE != getProperty<drawing::FillStyle>(xStyle, "FillStyle")); } +DECLARE_ODFEXPORT_TEST(testArabicZeroNumbering, "arabic-zero-numbering.doc") +{ + auto xNumberingRules + = getProperty<uno::Reference<container::XIndexAccess>>(getParagraph(1), "NumberingRules"); + comphelper::SequenceAsHashMap aMap(xNumberingRules->getByIndex(0)); + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 64 + // - Actual : 4 + // i.e. numbering type was ARABIC, not ARABIC_ZERO. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(style::NumberingType::ARABIC_ZERO), + aMap["NumberingType"].get<sal_uInt16>()); +} + DECLARE_WW8EXPORT_TEST(testTdf122429_header, "tdf122429_header.doc") { uno::Reference<container::XNameAccess> pageStyles = getStyles("PageStyles"); diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index afe0204a48cd..7300afca81e9 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -283,6 +283,10 @@ static sal_uInt8 GetLevelNFC( sal_uInt16 eNumType, const SfxItemSet *pOutSet) case style::NumberingType::NUMBER_HANGUL_KO: nRet = 41; break; case style::NumberingType::NUMBER_UPPER_KO: nRet = 44; break; case SVX_NUM_NUMBER_NONE: nRet = 0xff; break; + case SVX_NUM_ARABIC_ZERO: + // 0x16, msonfcArabicLZ + nRet = 22; + break; } return nRet; } diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index c07da7e81efb..f0c1ab4e0c3b 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -751,6 +751,10 @@ bool WW8ListManager::ReadLVL(SwNumFormat& rNumFormat, std::unique_ptr<SfxItemSet // actually: ORDINAL nType = SVX_NUM_ARABIC; break; + case 22: + // 0x16, msonfcArabicLZ + nType = SVX_NUM_ARABIC_ZERO; + break; case 23: nType = SVX_NUM_CHAR_SPECIAL; //For i120928,type info |