On Sat, Feb 20, 2021 at 04:42:38PM +0000, Sidong Yang wrote: > On Fri, Feb 19, 2021 at 10:56:11PM +0100, David Sterba wrote: > > On Tue, Feb 16, 2021 at 04:28:40PM +0000, Sidong Yang wrote: > > > Remove a code that inserting new line in fmt_end() for text mode. > > > Old code made a failure in fstest btrfs/006. > > > > > > Signed-off-by: Sidong Yang <realwa...@gmail.com> > > > --- > > > Hi, I've just read mail that Filipe written that some failure about > > > fstest. > > > I'm worried about this patch makes other problem. So make it RFC. Thanks. > > > > I found the discussion under the device stats patch adding json, the > > added line was known and "hopefully not causing problems", but the > > fstests seem to notice. > > > > I think we can fix that by removing the fmt_end newline but we also need > > to update how the fmt_print is done for the text output. Ie. for json > > there are some strict rules for line continuations (",") but for the > > textual output, each line ended by "\n" right away, without delaying > > that to the next fmt_* call should work. > > You mean that if this patch applied and the code prints device stats for > text format manually replaced to fmt_print(), there is no last new line > for text output? fmt_print() prints new line before print some value now. > I think that it should prints new line at the end of each fmt_print(). > like below > > diff --git a/common/format-output.c b/common/format-output.c > index f5b12548..9a9f5bf7 100644 > --- a/common/format-output.c > +++ b/common/format-output.c > @@ -242,7 +239,6 @@ void fmt_print(struct format_ctx *fctx, const char* key, > ...) > const bool print_colon = row->out_text[0]; > int len; > > - putchar('\n'); > fmt_indent1(fctx->indent); > len = strlen(row->out_text); > > @@ -312,6 +308,8 @@ void fmt_print(struct format_ctx *fctx, const char* key, > ...) > } > > fmt_end_value(fctx, row); > + if (bconf.output_format == CMD_FORMAT_TEXT) > + putchar('\n');
Yeah effectively that, but inside fmt_end_value and removing it from fmt_end. It's fixed in devel now with some comments updated as the plain text and json are different.