- Made FastWriter output more compact.
- fixed bug in runjsontests.py script.
diff --git a/src/jsontestrunner/main.cpp b/src/jsontestrunner/main.cpp
index 1d43720..a576564 100644
--- a/src/jsontestrunner/main.cpp
+++ b/src/jsontestrunner/main.cpp
@@ -115,7 +115,8 @@
const Json::Value &root,
std::string &rewrite )
{
-// Json::FastWriter writer;
+ //Json::FastWriter writer;
+ //writer.enableYAMLCompatibility();
Json::StyledWriter writer;
rewrite = writer.write( root );
FILE *fout = fopen( rewritePath.c_str(), "wt" );
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp
index f1d8168..47577fa 100644
--- a/src/lib_json/json_writer.cpp
+++ b/src/lib_json/json_writer.cpp
@@ -67,10 +67,29 @@
return std::string("\"") + value + "\"";
}
+// Class Writer
+// //////////////////////////////////////////////////////////////////
+Writer::~Writer()
+{
+}
+
// Class FastWriter
// //////////////////////////////////////////////////////////////////
+FastWriter::FastWriter()
+ : yamlCompatiblityEnabled_( false )
+{
+}
+
+
+void
+FastWriter::enableYAMLCompatibility()
+{
+ yamlCompatiblityEnabled_ = true;
+}
+
+
std::string
FastWriter::write( const Value &root )
{
@@ -106,33 +125,34 @@
break;
case arrayValue:
{
- document_ += "[ ";
+ document_ += "[";
int size = value.size();
for ( int index =0; index < size; ++index )
{
if ( index > 0 )
- document_ += ", ";
+ document_ += ",";
writeValue( value[index] );
}
- document_ += " ]";
+ document_ += "]";
}
break;
case objectValue:
{
Value::Members members( value.getMemberNames() );
- document_ += "{ ";
+ document_ += "{";
for ( Value::Members::iterator it = members.begin();
it != members.end();
++it )
{
const std::string &name = *it;
if ( it != members.begin() )
- document_ += ", ";
+ document_ += ",";
document_ += valueToQuotedString( name.c_str() );
- document_ += " : ";
+ document_ += yamlCompatiblityEnabled_ ? ": "
+ : ":";
writeValue( value[name] );
}
- document_ += " }";
+ document_ += "}";
}
break;
}