diff options
Diffstat (limited to 'tools/source/misc/json_writer.cxx')
-rw-r--r-- | tools/source/misc/json_writer.cxx | 13 |
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) |