summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-03-04 11:22:09 +0100
committerMiklos Vajna <vmiklos@collabora.com>2020-04-02 17:11:12 +0200
commit481a5b23960a5858559f52164b7b4648af1a1e2f (patch)
tree01fff8c435407c8a11b1a3c0a14637adaaa6668f
parent4959e6a1054e8c1f08ef2068b522f06b432ceb45 (diff)
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 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91560 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--sw/qa/extras/ww8export/data/arabic-zero-numbering.docbin0 -> 10752 bytes
-rw-r--r--sw/qa/extras/ww8export/ww8export3.cxx13
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx4
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx4
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
new file mode 100644
index 000000000000..c198c4aa44d0
--- /dev/null
+++ b/sw/qa/extras/ww8export/data/arabic-zero-numbering.doc
Binary files differ
diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx
index 7d6f4b756a39..b9531e3159bc 100644
--- a/sw/qa/extras/ww8export/ww8export3.cxx
+++ b/sw/qa/extras/ww8export/ww8export3.cxx
@@ -48,6 +48,19 @@ DECLARE_WW8EXPORT_TEST(testTdf37778_readonlySection, "tdf37778_readonlySection.d
CPPUNIT_ASSERT_EQUAL_MESSAGE("Number of Sections", sal_Int32(0), xSections->getCount());
}
+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 b0b0cde57768..1302a68e7404 100644
--- a/sw/source/filter/ww8/wrtw8num.cxx
+++ b/sw/source/filter/ww8/wrtw8num.cxx
@@ -227,6 +227,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 2eae61737df4..1d9de8283541 100644
--- a/sw/source/filter/ww8/ww8par3.cxx
+++ b/sw/source/filter/ww8/ww8par3.cxx
@@ -755,6 +755,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