Olga Telezhnaya <[email protected]> writes:
> diff --git a/ref-filter.c b/ref-filter.c
> index 34a54db168265..91290b62450b3 100644
> --- a/ref-filter.c
> +++ b/ref-filter.c
> @@ -101,6 +101,7 @@ static struct used_atom {
> } *used_atom;
> static int used_atom_cnt, need_tagged, need_symref;
> struct expand_data *cat_file_info;
> +static int is_cat = 0;
> ...
> @@ -739,6 +740,7 @@ int verify_ref_format(struct ref_format *format)
> const char *cp, *sp;
>
> cat_file_info = format->cat_file_data;
> + is_cat = format->is_cat;
Eek. The global cat_file_info itself may already be bad enough, but
now we have another one?
Hopefully these are all cleaned up in later steps in the series?
> format->need_color_reset_at_eol = 0;
> for (cp = format->format; *cp && (sp = find_next(cp)); ) {
> const char *color, *ep = strchr(sp, ')');
> @@ -748,7 +750,7 @@ int verify_ref_format(struct ref_format *format)
> return error(_("malformed format string %s"), sp);
> /* sp points at "%(" and ep points at the closing ")" */
>
> - if (format->cat_file_data)
> + if (is_cat)
> at = parse_ref_filter_atom(format, valid_cat_file_atom,
>
> ARRAY_SIZE(valid_cat_file_atom), sp + 2, ep);
> else {
> @@ -1438,7 +1440,7 @@ int populate_value(struct ref_array_item *ref)
> ref->symref = "";
> }
>
> - if (cat_file_info && check_and_fill_for_cat(ref))
> + if (is_cat && check_and_fill_for_cat(ref))
> return -1;
>
> /* Fill in specials first */
> diff --git a/ref-filter.h b/ref-filter.h
> index 5c6e019998716..69271e8c39f40 100644
> --- a/ref-filter.h
> +++ b/ref-filter.h
> @@ -125,6 +125,7 @@ struct ref_format {
> * hopefully would be reduced later.
> */
> struct expand_data *cat_file_data;
> + int is_cat;
> };
>
> #define REF_FORMAT_INIT { NULL, 0, -1 }
>
> --
> https://github.com/git/git/pull/452