summaryrefslogtreecommitdiff
path: root/sax
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2019-12-05 11:42:59 +0100
committerLászló Németh <nemeth@numbertext.org>2019-12-06 08:10:51 +0100
commit579db0d2d3d2ddf5a5f8feaa2e7cc4dde81d7701 (patch)
treee16d10d416a2c05a7827c6cf32ec37e19735b28e /sax
parent291b1acd3b9664ed41954458648448d7799d4df9 (diff)
cleanup "tdf#117274 XLSX export: fix VML comment shape type id"
Limit special MSO ID check for attribute values. Follow-up of commit c5d37d324cd6d17114c209de1862344ad58a1d93. Change-Id: I0f16b0df0c5575b799bb505a93c660c15b3273c5 Reviewed-on: https://gerrit.libreoffice.org/84549 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sax')
-rw-r--r--sax/source/tools/fastserializer.cxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/sax/source/tools/fastserializer.cxx b/sax/source/tools/fastserializer.cxx
index cc7293a6a3f9..a362ff438383 100644
--- a/sax/source/tools/fastserializer.cxx
+++ b/sax/source/tools/fastserializer.cxx
@@ -130,9 +130,7 @@ namespace sax_fastparser {
if (nLen == -1)
nLen = pStr ? strlen(pStr) : 0;
- if ( !bEscape ||
- // tdf#127274 don't escape the special VML shape type id "#_x0000_t202"
- (pStr && strcmp(pStr, "#_x0000_t202") == 0) )
+ if (!bEscape)
{
writeBytes( pStr, nLen );
return;
@@ -465,7 +463,12 @@ namespace sax_fastparser {
writeBytes(sEqualSignAndQuote, N_CHARS(sEqualSignAndQuote));
- write(rAttrList.getFastAttributeValue(j), rAttrList.AttributeValueLength(j), true);
+ const char* pAttributeValue = rAttrList.getFastAttributeValue(j);
+
+ // tdf#127274 don't escape the special VML shape type id "#_x0000_t202"
+ bool bEscape = !(pAttributeValue && strcmp(pAttributeValue, "#_x0000_t202") == 0);
+
+ write(pAttributeValue, rAttrList.AttributeValueLength(j), bEscape);
writeBytes(sQuote, N_CHARS(sQuote));
}