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 <b...@ovn.org> Cc: Jakub Sitnicki <jsitni...@gmail.com> Reported-by: Terry Wilson <twil...@redhat.com> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1608508 Signed-off-by: Aaron Conole <acon...@redhat.com> --- NOTE: I chose to keep the fputs and insert an additional fputs. It might alternately be appropriate to change fputs() to puts(). Dealer's choice, I guess :) lib/table.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/table.c b/lib/table.c index cd811caf5..a572c3446 100644 --- a/lib/table.c +++ b/lib/table.c @@ -620,6 +620,7 @@ table_print(const struct table *table, const struct table_style *style) struct ds s = DS_EMPTY_INITIALIZER; table_format(table, style, &s); fputs(ds_cstr(&s), stdout); + fputs("\n", stdout); ds_destroy(&s); } -- 2.14.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev