Re: [PATCH 2/5] for-each-ref: refactor refname handling
Jeff King <peff@peff.net> writes:
Show 10 quoted lines
> This code handles some special magic like *-deref and the
> :short formatting specifier. The next patch will add another
> field which outputs a ref and wants to use the same code.
>
> This patch splits the "which ref are we outputting" from the
> actual formatting. There should be no behavioral change.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> The diff is scary, but it is mostly reindentation.
... and an introduction of a bug ;-)
Show 17 quoted lines
> builtin-for-each-ref.c | 47 ++++++++++++++++++++++++++---------------------
> 1 files changed, 26 insertions(+), 21 deletions(-)
>
> diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
> index 4aaf75c..b50c93b 100644
> --- a/builtin-for-each-ref.c
> +++ b/builtin-for-each-ref.c
> @@ -672,32 +672,37 @@ static void populate_value(struct refinfo *ref)
> ...
> + /* look for "short" refname format */
> + if (formatp) {
> + formatp++;
> + if (!strcmp(formatp, "short"))
> + refname = get_short_ref(refname);
> + else
> + die("unknown %.*s format %s",
> + formatp - name, name, formatp); die("unknown %.*s format %s",
(int)(formatp - name), name, formatp);