From: Stephen Hemminger <step...@networkplumber.org> The json print library was toggling pretty print at the end of an array to workaround a bug in underlying json_writer. Instead, just fix json_writer to pretty print array correctly.
Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- lib/json_print.c | 2 -- lib/json_writer.c | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/json_print.c b/lib/json_print.c index e3da1bdfd5b0..b507b14ba27f 100644 --- a/lib/json_print.c +++ b/lib/json_print.c @@ -89,9 +89,7 @@ void open_json_array(enum output_type type, const char *str) void close_json_array(enum output_type type, const char *str) { if (_IS_JSON_CONTEXT(type)) { - jsonw_pretty(_jw, false); jsonw_end_array(_jw); - jsonw_pretty(_jw, true); } else if (_IS_FP_CONTEXT(type)) { printf("%s", str); } diff --git a/lib/json_writer.c b/lib/json_writer.c index f3eeaf7bc479..0d910dc068b5 100644 --- a/lib/json_writer.c +++ b/lib/json_writer.c @@ -180,10 +180,15 @@ void jsonw_end_object(json_writer_t *self) void jsonw_start_array(json_writer_t *self) { jsonw_begin(self, '['); + if (self->pretty) + putc(' ', self->out); } void jsonw_end_array(json_writer_t *self) { + if (self->pretty && self->sep) + putc(' ', self->out); + self->sep = '\0'; jsonw_end(self, ']'); } -- 2.15.1