diff --git a/lib/base/array.cpp b/lib/base/array.cpp index d93e6ae25..638f16340 100644 --- a/lib/base/array.cpp +++ b/lib/base/array.cpp @@ -216,6 +216,6 @@ Array::Ptr Array::Reverse(void) const String Array::ToString(void) const { std::ostringstream msgbuf; - ConfigWriter::EmitArray(msgbuf, const_cast(this)); + ConfigWriter::EmitArray(msgbuf, 1, const_cast(this)); return msgbuf.str(); } diff --git a/lib/base/configwriter.cpp b/lib/base/configwriter.cpp index bb160a97a..737305eac 100644 --- a/lib/base/configwriter.cpp +++ b/lib/base/configwriter.cpp @@ -50,14 +50,14 @@ void ConfigWriter::EmitEmpty(std::ostream& fp) fp << "null"; } -void ConfigWriter::EmitArray(std::ostream& fp, const Array::Ptr& val) +void ConfigWriter::EmitArray(std::ostream& fp, int indentLevel, const Array::Ptr& val) { fp << "[ "; - EmitArrayItems(fp, val); + EmitArrayItems(fp, indentLevel, val); fp << " ]"; } -void ConfigWriter::EmitArrayItems(std::ostream& fp, const Array::Ptr& val) +void ConfigWriter::EmitArrayItems(std::ostream& fp, int indentLevel, const Array::Ptr& val) { bool first = true; @@ -68,7 +68,7 @@ void ConfigWriter::EmitArrayItems(std::ostream& fp, const Array::Ptr& val) else fp << ", "; - EmitValue(fp, 0, item); + EmitValue(fp, indentLevel, item); } } @@ -117,7 +117,7 @@ void ConfigWriter::EmitScope(std::ostream& fp, int indentLevel, const Dictionary void ConfigWriter::EmitValue(std::ostream& fp, int indentLevel, const Value& val) { if (val.IsObjectType()) - EmitArray(fp, val); + EmitArray(fp, indentLevel, val); else if (val.IsObjectType()) EmitScope(fp, indentLevel, val); else if (val.IsString()) @@ -192,7 +192,7 @@ void ConfigWriter::EmitFunctionCall(std::ostream& fp, const String& name, const { EmitIdentifier(fp, name, false); fp << "("; - EmitArrayItems(fp, arguments); + EmitArrayItems(fp, 0, arguments); fp << ")"; } diff --git a/lib/base/configwriter.hpp b/lib/base/configwriter.hpp index 9d933be3c..f6ab2c9c2 100644 --- a/lib/base/configwriter.hpp +++ b/lib/base/configwriter.hpp @@ -40,9 +40,8 @@ public: static void EmitNumber(std::ostream& fp, double val); static void EmitString(std::ostream& fp, const String& val); static void EmitEmpty(std::ostream& fp); - static void EmitArray(std::ostream& fp, const Array::Ptr& val); - static void EmitArrayItems(std::ostream& fp, const Array::Ptr& val); - static void EmitDictionary(std::ostream& fp, const Dictionary::Ptr& val); + static void EmitArray(std::ostream& fp, int indentLevel, const Array::Ptr& val); + static void EmitArrayItems(std::ostream& fp, int indentLevel, const Array::Ptr& val); static void EmitScope(std::ostream& fp, int indentLevel, const Dictionary::Ptr& val, const Array::Ptr& imports = Array::Ptr()); static void EmitValue(std::ostream& fp, int indentLevel, const Value& val); static void EmitRaw(std::ostream& fp, const String& val);