summaryrefslogtreecommitdiffstats
path: root/chart2/source/tools/InternalDataProvider.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/tools/InternalDataProvider.cxx')
-rw-r--r--chart2/source/tools/InternalDataProvider.cxx12
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();