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