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');
        /* No newline here, the line is closed by next value or group end */
        va_end(args);
 }

Thanks,
Sidong

Reply via email to