diff options
author | Justin Luth <justin.luth@collabora.com> | 2020-07-16 16:02:53 +0300 |
---|---|---|
committer | Justin Luth <justin_luth@sil.org> | 2020-07-16 22:02:30 +0200 |
commit | 52f004e27fbdef114a6fa1b467a7919ab1762dab (patch) | |
tree | c22469b4462428715c5f9eb9b4c196bedc111d95 | |
parent | 8b15cebf0df0bf1449e2a1f221411e23eebbce16 (diff) |
tdf#77962 ww8import: 0x4xxx sprms are always 2 byte
SPRA(bytes) | SGC (property type) | A | ISPMD
XXX X XX X X XXXX XXXX
Focusing on the SPRA meaning:
0 is Operand is a ToggleOperand (which is 1 byte in size).
1 is Operand is 1 byte.
2 is Operand is 2 bytes.
3 is Operand is 4 bytes.
4 is Operand is 2 bytes.
5 is Operand is 2 bytes.
6 is Operand is of variable length.
7 is Operand is 3 bytes.
Thus every 0x4xxx and 0x5xxx are 2 bytes
sprmCIcoBi = SPRM_CHR(0x60, 1, spra::operand_2b_2); // 0x4A60
and thus it must be defined everywhere as 2 bytes.
Wrongly "fixed" from 0 to 1 by
commit bf24cca78e3c95d7a07e2073802c1540faec6920
Author: Caolán McNamara on Wed Dec 4 08:56:32 2002 +0000
#105926# some bidi properties with incorrect cached len
Change-Id: Ic30df735ed325a508ef3c7220d9b06878af248a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98911
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
(cherry picked from commit 56b04e40ab72b6333ce278ba2980650f5272025f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98845
-rw-r--r-- | sw/qa/extras/ww8export/data/tdf116194.doc | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export3.cxx | 5 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8scan.cxx | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/sw/qa/extras/ww8export/data/tdf116194.doc b/sw/qa/extras/ww8export/data/tdf116194.doc Binary files differnew file mode 100644 index 000000000000..ca1edf68d501 --- /dev/null +++ b/sw/qa/extras/ww8export/data/tdf116194.doc diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx index 49a887781859..c88c23dbc581 100644 --- a/sw/qa/extras/ww8export/ww8export3.cxx +++ b/sw/qa/extras/ww8export/ww8export3.cxx @@ -317,6 +317,11 @@ DECLARE_WW8EXPORT_TEST(testTdf133453_realFontSize, "tdf133453_realFontSize.doc") CPPUNIT_ASSERT_EQUAL( -95.f, getProperty<float>(getRun(getParagraph(1), 2, "2"), "CharEscapement") ); } +DECLARE_WW8EXPORT_TEST(testTdf116194, "tdf116194.doc") +{ + CPPUNIT_ASSERT_EQUAL( Color(192,0,0), Color(getProperty<sal_uInt32>(getRun(getParagraph(1), 1), "CharColor")) ); +} + DECLARE_WW8EXPORT_TEST(testTdf121111_fillStyleNone, "tdf121111_fillStyleNone.docx") { uno::Reference<beans::XPropertySet> xStyle(getStyles("ParagraphStyles")->getByName("Numbering - First level"), diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index 30294ca3ab9f..14780313c4ca 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -603,7 +603,7 @@ const wwSprmSearcher *wwSprmParser::GetWW8SprmSearcher() {0x085D, { 1, L_FIX} }, // "sprmCFItalicBi" ;;; {0x4A5E, { 2, L_FIX} }, {0x485F, { 2, L_FIX} }, // "sprmCLidBi" ;;; - {0x4A60, { 1, L_FIX} }, // "sprmCIcoBi" ;;; + {0x4A60, { 2, L_FIX} }, // "sprmCIcoBi" ;;; {0x4A61, { 2, L_FIX} }, // "sprmCHpsBi" ;;; {0xCA62, { 0, L_VAR} }, // "sprmCDispFieldRMark" chp.fDispFieldRMark, // chp.ibstDispFieldRMark, chp.dttmDispFieldRMark ; |