oox/source/ole/axbinarywriter.cxx|4 ++--
sw/qa/extras/ooxmlexport/data/tdf118169.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport13.cxx | 11 +++
3 files changed, 13 insertions(+), 2 deletions(-)
New commits:
commit 7d9f20a723a73300e05a9885c5f02516f771692d
Author: Tamás Zolnai
AuthorDate: Wed Aug 28 16:24:59 2019 +0200
Commit: Xisco Faulí
CommitDate: Wed Sep 4 15:30:07 2019 +0200
tdf#118169: ActiveX form control saved incorrectly with accented letters
Write out unicode strings without any compression.
Change-Id: I93cadc40bacbd679724c3404fd870cba48065650
Reviewed-on: https://gerrit.libreoffice.org/78234
Tested-by: Jenkins
Reviewed-by: Tamás Zolnai
Signed-off-by: Xisco Fauli
Reviewed-on: https://gerrit.libreoffice.org/78592
diff --git a/oox/source/ole/axbinarywriter.cxx
b/oox/source/ole/axbinarywriter.cxx
index 89d2dc25351a..400e6fbde551 100644
--- a/oox/source/ole/axbinarywriter.cxx
+++ b/oox/source/ole/axbinarywriter.cxx
@@ -144,8 +144,8 @@ void AxBinaryPropertyWriter::writePairProperty( AxPairData&
orPairData )
void AxBinaryPropertyWriter::writeStringProperty( OUString& orValue )
{
-sal_uInt32 nSize = orValue.getLength();
-setFlag( nSize, AX_STRING_COMPRESSED );
+sal_uInt32 nSize = orValue.getLength() * 2;
+setFlag( nSize, AX_STRING_COMPRESSED, false );
maOutStrm.writeAligned< sal_uInt32 >( nSize );
maLargeProps.push_back( ComplexPropVector::value_type( new StringProperty(
orValue, nSize ) ) );
startNextProperty();
diff --git a/sw/qa/extras/ooxmlexport/data/tdf118169.docx
b/sw/qa/extras/ooxmlexport/data/tdf118169.docx
new file mode 100644
index ..2510fb3e59eb
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf118169.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index aab416a86f25..6a71a8e24747 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -414,6 +414,17 @@ DECLARE_OOXMLEXPORT_TEST(tdf127085, "tdf127085.docx")
uno::Reference xShape(getShape(1), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(sal_Int16(50), getProperty(xShape,
"FillTransparence"));
}
+
+DECLARE_OOXMLEXPORT_TEST(tdf118169, "tdf118169.docx")
+{
+// Unicode characters were converted to question marks.
+uno::Reference xControlShape(getShape(1),
uno::UNO_QUERY);
+uno::Reference
xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+uno::Reference xServiceInfo(xPropertySet,
uno::UNO_QUERY);
+CPPUNIT_ASSERT_EQUAL(true,
bool(xServiceInfo->supportsService("com.sun.star.form.component.CheckBox")));
+CPPUNIT_ASSERT_EQUAL(OUString(u"őőő"),
getProperty(xPropertySet, "Label"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits