Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx> writes: > diff --git a/tag.c b/tag.c > index d1dcd18..d5f090b 100644 > --- a/tag.c > +++ b/tag.c > @@ -39,7 +39,7 @@ int gpg_verify_tag(const unsigned char *sha1, const char *name_to_report, > int ret; > > type = sha1_object_info(sha1, NULL); > - if (type != OBJ_TAG) > + if ((type != OBJ_TAG) && ((type != OBJ_BLOB) || !(flags & GPG_VERIFY_BLOB))) > return error("%s: cannot verify a non-tag object of type %s.", > name_to_report ? > name_to_report : The double negation is very hard to read. I wonder if ((type != OBJ_TAG) && !((type == OBJ_BLOB) && (flags & GPG_VERIFY_BLOB))) is easier to follow? "It is not a tag object, and it's not like we were asked to verify blob and the user gave us a blob, either, so let's complain" is easier to follow, at least for me. Or even if ((flags & GPG_VERIFY_BLOB) && (type != OBJ_BLOB)) "you told me to check blob but didn't give me one"; } else if (type != OBJ_TAG) "you didn't give me a tag"; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html