From: Junio C Hamano Date: Mon, 17 Nov 2025 18:48:34 GMT Subject: Re: [PATCH v4 1/2] repo: factor out field printing to dedicated function Message-ID: In-Reply-To: <20251117151844.14802-2-lucasseikioshiro@gmail.com> Lucas Seiki Oshiro writes: > Move the field printing in git-repo-info to a new function called > `print_field`, allowing it to be called by functions other than > `print_fields`. Missing: Also change its use of quote_c_style() helper to output directly to the standard output stream, instead of taking a result in a strbuf and then printing it outselves. The patch text looks great. > Signed-off-by: Lucas Seiki Oshiro > --- > builtin/repo.c | 34 ++++++++++++++++++---------------- > 1 file changed, 18 insertions(+), 16 deletions(-) > > diff --git a/builtin/repo.c b/builtin/repo.c > index 9d4749f79b..f9fb418494 100644 > --- a/builtin/repo.c > +++ b/builtin/repo.c > @@ -85,13 +85,29 @@ static get_value_fn *get_value_fn_for_key(const char *key) > return found ? found->get_value : NULL; > } > > +static void print_field(enum output_format format, const char *key, > + const char *value) > +{ > + switch (format) { > + case FORMAT_KEYVALUE: > + printf("%s=", key); > + quote_c_style(value, NULL, stdout, 0); > + putchar('\n'); > + break; > + case FORMAT_NUL_TERMINATED: > + printf("%s\n%s%c", key, value, '\0'); > + break; > + default: > + BUG("not a valid output format: %d", format); > + } > +} > + > static int print_fields(int argc, const char **argv, > struct repository *repo, > enum output_format format) > { > int ret = 0; > struct strbuf valbuf = STRBUF_INIT; > - struct strbuf quotbuf = STRBUF_INIT; > > for (int i = 0; i < argc; i++) { > get_value_fn *get_value; > @@ -105,25 +121,11 @@ static int print_fields(int argc, const char **argv, > } > > strbuf_reset(&valbuf); > - strbuf_reset("buf); > - > get_value(repo, &valbuf); > - > - switch (format) { > - case FORMAT_KEYVALUE: > - quote_c_style(valbuf.buf, "buf, NULL, 0); > - printf("%s=%s\n", key, quotbuf.buf); > - break; > - case FORMAT_NUL_TERMINATED: > - printf("%s\n%s%c", key, valbuf.buf, '\0'); > - break; > - default: > - BUG("not a valid output format: %d", format); > - } > + print_field(format, key, valbuf.buf); > } > > strbuf_release(&valbuf); > - strbuf_release("buf); > return ret; > }