On Tue, Jan 17, 2017 at 12:25:31PM -0500, Jeff King wrote:

> Actually, looking at the callsites, I think they are fine to just call
> pretty_print_ref() themselves, and I don't think it actually matters if
> it happens before or after the verification.

Oh, sorry, I misread it. We do indeed early-return from the verification
and skip the printing in that case. So it'd be more like:

diff --git a/builtin/tag.c b/builtin/tag.c
index 9da11e0c2..068f392b6 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -114,7 +114,11 @@ static int verify_tag(const char *name, const char *ref,
        if (fmt_pretty)
                flags = GPG_VERIFY_QUIET;
 
-       return verify_and_format_tag(sha1, ref, fmt_pretty, flags);
+       if (gpg_verify_tag(sha1, ref, flags))
+               return -1;
+
+       pretty_print_ref(name, sha1, fmt_pretty);
+       return 0;
 }
 
 static int do_sign(struct strbuf *buffer)
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 212449f47..b3f08f705 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -58,10 +58,19 @@ int cmd_verify_tag(int argc, const char **argv, const char 
*prefix)
        while (i < argc) {
                unsigned char sha1[20];
                const char *name = argv[i++];
-               if (get_sha1(name, sha1))
+
+               if (get_sha1(name, sha1)) {
                        had_error = !!error("tag '%s' not found.", name);
-               else if (verify_and_format_tag(sha1, name, fmt_pretty, flags))
+                       continue;
+               }
+
+               if (gpg_verify_tag(sha1, name, flags)) {
                        had_error = 1;
+                       continue;
+               }
+
+               if (fmt_pretty)
+                       pretty_print_ref(name, sha1, fmt_pretty);
        }
        return had_error;
 }

which I think is still an improvement (the printing, rather than being
an obscure parameter to the overloaded verify_and_format_tag()
function, is clearly a first-class operation).

-Peff

Reply via email to