Skip to content

Commit 9243d60

Browse files
committed
const stuff
1 parent beb6f35 commit 9243d60

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

include/json/writer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ class JSON_API StreamWriter {
7676
void setIndentation(std::string indentation);
7777

7878
/// Do not take ownership of sout, but maintain a reference.
79-
StreamWriter* newStreamWriter(std::ostream* sout);
79+
StreamWriter* newStreamWriter(std::ostream* sout) const;
8080
};
8181
};
8282

8383
/// \brief Write into stringstream, then return string, for convenience.
84-
std::string writeString(Value const& root, StreamWriterBuilder const& builder);
84+
std::string writeString(Value const& root, StreamWriter::Builder const& builder);
8585

8686

8787
/** \brief Abstract class for writers.

src/jsontestrunner/main.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ static int parseAndSaveValueTree(const std::string& input,
151151
reader.getFormattedErrorMessages().c_str());
152152
return 1;
153153
}
154-
155154
if (!parseOnly) {
156155
FILE* factual = fopen(actual.c_str(), "wt");
157156
if (!factual) {
@@ -182,6 +181,14 @@ static std::string useStyledStreamWriter(
182181
writer.write(sout, root);
183182
return sout.str();
184183
}
184+
static std::string useBuiltStyledStreamWriter(
185+
Json::Value const& root)
186+
{
187+
Json::StreamWriterBuilderFactory f;
188+
Json::StreamWriter::Builder builder(&f);
189+
builder.setCommentStyle(Json::StreamWriter::CommentStyle::All);
190+
return writeString(root, builder);
191+
}
185192
static int rewriteValueTree(
186193
const std::string& rewritePath,
187194
const Json::Value& root,
@@ -248,6 +255,8 @@ static int parseCommandLine(
248255
opts->write = &useStyledWriter;
249256
} else if (writerName == "StyledStreamWriter") {
250257
opts->write = &useStyledStreamWriter;
258+
} else if (writerName == "BuiltStyledStreamWriter") {
259+
opts->write = &useBuiltStyledStreamWriter;
251260
} else {
252261
printf("Unknown '--json-writer %s'\n", writerName.c_str());
253262
return 4;

src/lib_json/json_writer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -772,8 +772,8 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
772772
if (size == 0)
773773
pushValue("[]");
774774
else {
775-
bool isArrayMultiLine = isMultineArray(value);
776-
if (isArrayMultiLine) {
775+
bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value);
776+
if (isMultiLine) {
777777
writeWithIndent("[");
778778
indent();
779779
bool hasChildValue = !childValues_.empty();
@@ -969,14 +969,14 @@ void StreamWriter::Builder::setIndentation(std::string v)
969969
{
970970
own_->setIndentation(v);
971971
}
972-
StreamWriter* StreamWriter::Builder::newStreamWriter(std::ostream* sout)
972+
StreamWriter* StreamWriter::Builder::newStreamWriter(std::ostream* sout) const
973973
{
974974
return own_->newStreamWriter(sout);
975975
}
976976

977977
/// Do not take ownership of sout, but maintain a reference.
978978
StreamWriter* newStreamWriter(std::ostream* sout);
979-
std::string writeString(Value const& root, StreamWriterBuilder const& builder) {
979+
std::string writeString(Value const& root, StreamWriter::Builder const& builder) {
980980
std::ostringstream sout;
981981
std::unique_ptr<StreamWriter> const sw(builder.newStreamWriter(&sout));
982982
sw->write(root);
@@ -986,7 +986,7 @@ std::string writeString(Value const& root, StreamWriterBuilder const& builder) {
986986
std::ostream& operator<<(std::ostream& sout, Value const& root) {
987987
StreamWriterBuilderFactory f;
988988
StreamWriter::Builder builder(&f);
989-
builder.setCommentStyle(StreamWriter::CommentStyle::Some);
989+
builder.setCommentStyle(StreamWriter::CommentStyle::All);
990990
std::shared_ptr<StreamWriter> writer(builder.newStreamWriter(&sout));
991991
writer->write(root);
992992
return sout;

0 commit comments

Comments
 (0)