diff options
author | Justin Luth <justin.luth@collabora.com> | 2018-09-13 15:01:30 +0300 |
---|---|---|
committer | Justin Luth <justin_luth@sil.org> | 2018-10-03 07:54:00 +0200 |
commit | 93242e985a002d94b0ac765952ce47b928effcae (patch) | |
tree | d31789c7c48a28cad3d28dd8b62bf9f6b03d0dd3 /sw | |
parent | adb0030d99b90fc50e536c89fc8c7a80f057c6ac (diff) |
tdf#76683 writerfilter: TwipMeasure must be positive
...and the column width must not be negative.
The previous column logic ensured that the total width was
larger than the reference by adding a fake buffer
and then subtracted the difference from the final column.
In the case of a zero-width final column, it could become negative.
The current logic ensures that the total width is less than
the reference width, and then adds the difference
(which should be a smaller difference now) to the final column.
Regression potential - early columns that need every single twip
of bonus space might not fit anymore. On the other hand,
ending columns might be fixed...
Change-Id: Ie75d455e8ed62dbec5a1b9c901417df8d842ace8
Reviewed-on: https://gerrit.libreoffice.org/59400
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf76683_negativeTwipsMeasure.docx | bin | 0 -> 12051 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 11 |
2 files changed, 11 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf76683_negativeTwipsMeasure.docx b/sw/qa/extras/ooxmlexport/data/tdf76683_negativeTwipsMeasure.docx Binary files differnew file mode 100644 index 000000000000..eb769fdcc3bf --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf76683_negativeTwipsMeasure.docx diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx index db52d019439b..adb0dc6f4264 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx @@ -160,6 +160,17 @@ DECLARE_OOXMLEXPORT_TEST(testTdf82065_Ind_start_strict, "tdf82065_Ind_start_stri CPPUNIT_ASSERT_EQUAL_MESSAGE("IndentAt defined", true, bFoundIndentAt); } +DECLARE_OOXMLEXPORT_TEST(testTdf76683_negativeTwipsMeasure, "tdf76683_negativeTwipsMeasure.docx") +{ + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + if (!pXmlDoc) + return; + assertXPath(pXmlDoc, "/w:document/w:body/w:sectPr/w:cols/w:col", 2); + sal_uInt32 nColumn1 = getXPath(pXmlDoc, "/w:document/w:body/w:sectPr/w:cols/w:col[1]", "w").toUInt32(); + sal_uInt32 nColumn2 = getXPath(pXmlDoc, "/w:document/w:body/w:sectPr/w:cols/w:col[2]", "w").toUInt32(); + CPPUNIT_ASSERT( nColumn1 > nColumn2 ); +} + DECLARE_OOXMLEXPORT_TEST(testTdf112694, "tdf112694.docx") { uno::Any aPageStyle = getStyles("PageStyles")->getByName("Standard"); |