> diff --git a/gpg-interface.h b/gpg-interface.h > index a5e6517ae6..cee0dfe401 100644 > --- a/gpg-interface.h > +++ b/gpg-interface.h > @@ -23,15 +23,27 @@ struct signature_check { > char *key; > }; > > +struct signing_tool { > + char *name; > + char *program; > + struct string_list pemtype; > + struct signing_tool *next; > +}; > + > void signature_check_clear(struct signature_check *sigc); > > /* > - * Look at GPG signed content (e.g. a signed tag object), whose > + * Look for signed content (e.g. a signed tag object), whose > * payload is followed by a detached signature on it. Return the > * offset where the embedded detached signature begins, or the end of > * the data when there is no such signature. > + * > + * If out_tool is non-NULL and a signature is found, it will be > + * pointed at the signing_tool that corresponds to the found > + * signature type. > */ > -size_t parse_signature(const char *buf, size_t size); > +size_t parse_signature(const char *buf, unsigned long size, > + const struct signing_tool **out_tool); This hunk changes the type of the 'size' argument from size_t to unsigned long, but leaves the function's signature in 'gpg-interface.c' unchanged. This breaks the build on 32 bit systems (and Windows?), where unsigned long is only 32 bits, and I presume is unintended, as it goes against the earlier patch 3/8 "gpg-interface: use size_t for signature buffer size".