summaryrefslogtreecommitdiff
path: root/tools/source/misc/json_writer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tools/source/misc/json_writer.cxx')
-rw-r--r--tools/source/misc/json_writer.cxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/source/misc/json_writer.cxx b/tools/source/misc/json_writer.cxx
index 9319db2799bc..aa78b44549da 100644
--- a/tools/source/misc/json_writer.cxx
+++ b/tools/source/misc/json_writer.cxx
@@ -121,7 +121,7 @@ void JsonWriter::endStruct()
void JsonWriter::put(const char* pPropName, const OUString& rPropVal)
{
auto nPropNameLength = strlen(pPropName);
- auto nWorstCasePropValLength = rPropVal.getLength() * 2;
+ auto nWorstCasePropValLength = rPropVal.getLength() * 3;
ensureSpace(nPropNameLength + nWorstCasePropValLength + 8);
addCommaBeforeField();
@@ -159,6 +159,13 @@ void JsonWriter::put(const char* pPropName, const OUString& rPropVal)
*mPos = 'n';
++mPos;
}
+ else if (ch == '\t')
+ {
+ *mPos = '\\';
+ ++mPos;
+ *mPos = 't';
+ ++mPos;
+ }
else if (ch == '\r')
{
*mPos = '\\';
@@ -214,7 +221,7 @@ void JsonWriter::put(const char* pPropName, const OUString& rPropVal)
void JsonWriter::put(const char* pPropName, const OString& rPropVal)
{
auto nPropNameLength = strlen(pPropName);
- auto nWorstCasePropValLength = rPropVal.getLength();
+ auto nWorstCasePropValLength = rPropVal.getLength() * 2;
ensureSpace(nPropNameLength + nWorstCasePropValLength + 8);
addCommaBeforeField();
@@ -318,7 +325,7 @@ void JsonWriter::put(const char* pPropName, int nPropVal)
memcpy(mPos, "\": ", 3);
mPos += 3;
- mPos += sprintf(mPos, "%d", nPropVal);
+ mPos += sprintf(mPos, "\"%d\"", nPropVal);
}
void JsonWriter::putRaw(const rtl::OStringBuffer& rRawBuf)