[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180208162625.13727-4-sthemmin@microsoft.com>
Date: Thu, 8 Feb 2018 08:26:24 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: dsahern@...il.com
Cc: netdev@...r.kernel.org,
Stephen Hemminger <stephen@...workplumber.org>
Subject: [PATCH iproute2-next 3/4] json: fix newline at end of array
From: Stephen Hemminger <stephen@...workplumber.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 <stephen@...workplumber.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
Powered by blists - more mailing lists