mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-14 02:35:09 +01:00
Fixed bug introduced by utf-8 patch with fix provided by Henry Ludemann. All unit tests are now passing.
This commit is contained in:
parent
b0ab79bc5b
commit
eda47b61b5
@ -120,8 +120,10 @@ std::string valueToQuotedString( const char *value )
|
|||||||
std::string result;
|
std::string result;
|
||||||
result.reserve(maxsize); // to avoid lots of mallocs
|
result.reserve(maxsize); // to avoid lots of mallocs
|
||||||
result += "\"";
|
result += "\"";
|
||||||
for (const char* c=value; *c != 0; ++c){
|
for (const char* c=value; *c != 0; ++c)
|
||||||
switch(*c){
|
{
|
||||||
|
switch(*c)
|
||||||
|
{
|
||||||
case '\"':
|
case '\"':
|
||||||
result += "\\\"";
|
result += "\\\"";
|
||||||
break;
|
break;
|
||||||
@ -143,10 +145,14 @@ std::string valueToQuotedString( const char *value )
|
|||||||
case '\t':
|
case '\t':
|
||||||
result += "\\t";
|
result += "\\t";
|
||||||
break;
|
break;
|
||||||
case '/':
|
//case '/':
|
||||||
// Even though \/ is considered a legal escape in JSON, a bare
|
// Even though \/ is considered a legal escape in JSON, a bare
|
||||||
// slash is also legal, so I see no reason to escape it.
|
// slash is also legal, so I see no reason to escape it.
|
||||||
// (I hope I am not misunderstanding something.)
|
// (I hope I am not misunderstanding something.
|
||||||
|
// blep notes: actually escaping \/ may be useful in javascript to avoid </
|
||||||
|
// sequence.
|
||||||
|
// Should add a flag to allow this compatibility mode and prevent this
|
||||||
|
// sequence from occurring.
|
||||||
default:
|
default:
|
||||||
if ( isControlCharacter( *c ) )
|
if ( isControlCharacter( *c ) )
|
||||||
{
|
{
|
||||||
@ -155,10 +161,12 @@ std::string valueToQuotedString( const char *value )
|
|||||||
result += oss.str();
|
result += oss.str();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
result += *c;
|
result += *c;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
result += "\"";
|
result += "\"";
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user