diff options
Diffstat (limited to 'chart2/source/tools/InternalDataProvider.cxx')
-rw-r--r-- | chart2/source/tools/InternalDataProvider.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index 1b2f6ae28351..9595cf2375d7 100644 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -518,7 +518,14 @@ InternalDataProvider::createDataSequenceFromArray( const OUString& rArrayStr, st bool bInQuote = false; for (; p != pEnd; ++p) { - if (*p == '"') + // Skip next "" within the title text: it's an escaped double quotation mark. + if (bInQuote && *p == '"' && *(p + 1) == '"') + { + if (!pElem) + pElem = p; + ++p; + } + else if (*p == '"') { bInQuote = !bInQuote; if (bInQuote) @@ -534,7 +541,8 @@ InternalDataProvider::createDataSequenceFromArray( const OUString& rArrayStr, st // Non empty string if (!aElem.isEmpty()) bAllNumeric = false; - aRawElems.push_back(aElem); + // Restore also escaped double quotation marks + aRawElems.push_back(aElem.replaceAll("\"\"", "\"")); pElem = nullptr; aElem.clear(); |