builtin-for-each-ref.c: check if we need to peel onion while parsing the format

Instead of iterating over the parsed atoms that are used in the output
format after all the parsing is done, check it while parsing the
format string.
This commit is contained in:
Junio C Hamano 2010-02-13 11:38:42 -08:00
parent 40dae3094d
commit 20322e0b55

View File

@ -133,6 +133,8 @@ static int parse_atom(const char *atom, const char *ep)
(sizeof(*used_atom_type) * used_atom_cnt));
used_atom[at] = xmemdupz(atom, ep - atom);
used_atom_type[at] = valid_atom[i].cmp_type;
if (*atom == '*')
need_tagged = 1;
return at;
}
@ -944,13 +946,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
refs = cbdata.grab_array;
num_refs = cbdata.grab_cnt;
for (i = 0; i < used_atom_cnt; i++) {
if (used_atom[i][0] == '*') {
need_tagged = 1;
break;
}
}
sort_refs(sort, refs, num_refs);
if (!maxcount || num_refs < maxcount)