Michael J Gruber <g...@drmicha.warpmail.net> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to