diff options
author | Aaron Conole <aconole@redhat.com> | 2018-08-07 20:34:51 -0400 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2018-08-08 11:17:00 -0700 |
commit | 3562353e0e2039d90f99f5e1165e3d7899abde91 (patch) | |
tree | 3332aa55632dbe43261fbef3a4b14d92fdf6fdf6 /lib | |
parent | 111b58cc7921e54caa384851c2f11c066014a49b (diff) | |
download | openvswitch-3562353e0e2039d90f99f5e1165e3d7899abde91.tar.gz |
table: append newline when printing tables
With commit cb139fa8b3a1 ("table: New function table_format() for
formatting a table as a string.") a new mechanism for formatting
tables was introduced, and the table_print method was refactored to
use this.
During that refactor, calls to 'puts' were replaced with
'ds_put_cstr', and table print was changed to use 'fputs(...,
stdout)'. Unfortunately, fputs() does not append a newline to the
string provided, and changes the output strings of, for example,
ovsdb-client dump to print all on one line. This means
post-processing scripts that are chained after ovsdb-client would
either block indefinitely (if they don't detect EOF), or process the
entire bundle at once (rather than seeing each table on a separate
line).
Fixes: cb139fa8b3a1 ("table: New function table_format() for formatting a table as a string.")
Cc: Ben Pfaff <blp@ovn.org>
Cc: Jakub Sitnicki <jsitnicki@gmail.com>
Reported-by: Terry Wilson <twilson@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1608508
Signed-off-by: Aaron Conole <aconole@redhat.com>
Suggested-by: Ben Pfaff <blp@ovn.org>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Terry Wilson <twilson@redhat.com>
Tested-by: Terry Wilson <twilson@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/table.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/table.c b/lib/table.c index cd811caf5..19bf89262 100644 --- a/lib/table.c +++ b/lib/table.c @@ -547,6 +547,7 @@ table_print_json__(const struct table *table, const struct table_style *style, json_object_put(json, "data", data); json_to_ds(json, style->json_flags, s); + ds_put_char(s, '\n'); json_destroy(json); } |