From 20322e0b552b9860377c162675ce5c49bfd32e83 Mon Sep 17 00:00:00 2001
From: Junio C Hamano <gitster@pobox.com>
Date: Sat, 13 Feb 2010 11:38:42 -0800
Subject: 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.
---
 builtin-for-each-ref.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

(limited to 'builtin-for-each-ref.c')

diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
index 3698e822c8..d68977ee63 100644
--- a/builtin-for-each-ref.c
+++ b/builtin-for-each-ref.c
@@ -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)
-- 
cgit v1.2.3