]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/show-ref: stop using global variable to count matches
authorPatrick Steinhardt <ps@pks.im>
Tue, 31 Oct 2023 08:16:33 +0000 (09:16 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Nov 2023 03:09:00 +0000 (12:09 +0900)
When passing patterns to git-show-ref(1) we're checking whether any
reference matches -- if none do, we indicate this condition via an
unsuccessful exit code.

We're using a global variable to count these matches, which is required
because the counter is getting incremented in a callback function. But
now that we have the `struct show_ref_data` in place, we can get rid of
the global variable and put the counter in there instead.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/show-ref.c

index 5aa6016376a362c94bf7a511c119f6192321c849..d0de69e29dd5a69dd39514d4bf25c366c5d3cc7f 100644 (file)
@@ -18,7 +18,7 @@ static const char * const show_ref_usage[] = {
        NULL
 };
 
-static int deref_tags, show_head, tags_only, heads_only, found_match, verify,
+static int deref_tags, show_head, tags_only, heads_only, verify,
           quiet, hash_only, abbrev;
 
 static void show_one(const char *refname, const struct object_id *oid)
@@ -50,6 +50,7 @@ static void show_one(const char *refname, const struct object_id *oid)
 
 struct show_ref_data {
        const char **patterns;
+       int found_match;
 };
 
 static int show_ref(const char *refname, const struct object_id *oid,
@@ -78,7 +79,7 @@ static int show_ref(const char *refname, const struct object_id *oid,
        }
 
 match:
-       found_match++;
+       data->found_match++;
 
        show_one(refname, oid);
 
@@ -191,7 +192,7 @@ static int cmd_show_ref__patterns(const char **patterns)
        } else {
                for_each_ref(show_ref, &show_ref_data);
        }
-       if (!found_match)
+       if (!show_ref_data.found_match)
                return 1;
 
        return 0;