summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-03-04 11:22:09 +0100
committerMiklos Vajna <vmiklos@collabora.com>2020-05-15 10:00:48 +0200
commit0172f58071be13178a9fd5d6a7e1143d5a2edf23 (patch)
tree2c48edc4d6d268701ae2af1cf2afe89a944e34f0
parent[cp] switch to Collabora's help instance (diff)
downloadcore-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.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 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