[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-1' - sw/qa writerfilter/source
brinzing (via logerrit)
logerrit at kemper.freedesktop.org
Mon Dec 9 23:26:28 UTC 2019
sw/qa/extras/ooxmlexport/data/tdf124986.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport12.cxx | 22 ++++++++++++++++++++++
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 8 ++++++--
3 files changed, 28 insertions(+), 2 deletions(-)
New commits:
commit 701b5cfe9d908b346e95054b565d05747775ae79
Author: brinzing <oliver.brinzing at gmx.de>
AuthorDate: Fri Nov 1 16:36:31 2019 +0100
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Tue Dec 10 00:25:28 2019 +0100
tdf#124986: docx: remove trailing quotation marks and spaces from set fields
Reviewed-on: https://gerrit.libreoffice.org/81892
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
Conflicts:
sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
Change-Id: I6390344b72b0148cff8e0ed5150d7abfc9490a2a
Reviewed-on: https://gerrit.libreoffice.org/84793
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf124986.docx b/sw/qa/extras/ooxmlexport/data/tdf124986.docx
new file mode 100755
index 000000000000..e5bb8f4966b8
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf124986.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
index d7d41b1d1e36..fc79b451ce39 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
@@ -771,6 +771,28 @@ DECLARE_OOXMLEXPORT_TEST(testTdf105444, "tdf105444.docx")
assertXPath(pXmlComm, "/w:comments/w:comment/w:p", 1);
}
+DECLARE_OOXMLIMPORT_TEST(testTdf124986, "tdf124986.docx")
+{
+ // Load a document with SET fields, where the SET fields contain leading/trailing quotation marks and spaces.
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xFieldsAccess(
+ xTextFieldsSupplier->getTextFields());
+ uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration());
+
+ while (xFields->hasMoreElements())
+ {
+ uno::Reference<lang::XServiceInfo> xServiceInfo(xFields->nextElement(), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPropertySet(xServiceInfo, uno::UNO_QUERY);
+ OUString aValue;
+ if (xServiceInfo->supportsService("com.sun.star.text.TextField.SetExpression"))
+ {
+ xPropertySet->getPropertyValue("Content") >>= aValue;
+ CPPUNIT_ASSERT_EQUAL(OUString("demo"), aValue);
+ }
+ }
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index ecb73bb038f4..2506a9609206 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -3149,9 +3149,13 @@ void DomainMapper_Impl::handleFieldSet
sVariable = lcl_ExctractVariableAndHint(pContext->GetCommand(), sHint);
// remove surrounding "" if exists
- if( sHint.getLength() >= 2 && sHint.startsWith("\"") )
+ if(sHint.getLength() >= 2)
{
- sHint = sHint.trim().copy(1, sHint.getLength() - 2);
+ OUString sTmp = sHint.trim();
+ if (sTmp.startsWith("\"") && sTmp.endsWith("\""))
+ {
+ sHint = sTmp.copy(1, sTmp.getLength() - 2);
+ }
}
// determine field master name
More information about the Libreoffice-commits
mailing list