On Sun, Jan 15, 2017 at 01:47:03PM -0500, santiago@xxxxxxx wrote: > -static int for_each_tag_name(const char **argv, each_tag_name_fn fn) > +static int for_each_tag_name(const char **argv, each_tag_name_fn fn, > + void *cb_data) > { > const char **p; > char ref[PATH_MAX]; > int had_error = 0; > unsigned char sha1[20]; > > + > for (p = argv; *p; p++) { > if (snprintf(ref, sizeof(ref), "refs/tags/%s", *p) > >= sizeof(ref)) { Funny extra line? > { > - return verify_and_format_tag(sha1, name, NULL, GPG_VERIFY_VERBOSE); > + int flags; > + char *fmt_pretty = cb_data; > + flags = GPG_VERIFY_VERBOSE; > + > + if (fmt_pretty) > + flags = GPG_VERIFY_QUIET; > + > + return verify_and_format_tag(sha1, ref, fmt_pretty, flags); It seems funny that VERBOSE and QUIET are bit-flags. What happens when you ask for GPG_VERIFY_VERBOSE|GPG_VERIFY_QUIET? I suppose this is actually not a problem in _this_ patch, but in the very first one that adds the QUIET flag. I'm not sure if the problem is that the options should be more orthogonal, or that they are just badly named to appear as opposites when they aren't. -Peff