Junio C Hamano <gitster@xxxxxxxxx> writes: > Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx> writes: > >> Also, I'm open to using another letter for EXPKEYSIG but couldn't decide >> between 'Y', 'Z', 'K'. 'K' could be confused with REVKEYSIG, I'm afraid. >> 'Y' is next to 'X' and contained in 'KEY', it would be my first choice. > > Sounds good enough to me. Thanks. I really do not want to leave too many topics listed in the "What's cooking" report to be in undecided / waiting state. How about squashing this in, with a fully updated log message to replace? -- >8 -- From: Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 28 Sep 2016 16:24:13 +0200 Subject: [PATCH] SQUASH: gpg-interface: use more status letters According to gpg2's doc/DETAILS: For each signature only one of the codes GOODSIG, BADSIG, EXPSIG, EXPKEYSIG, REVKEYSIG or ERRSIG will be emitted. gpg1 ("classic") behaves the same (although doc/DETAILS differs). Currently, we parse gpg's status output for GOODSIG, BADSIG and trust information and translate that into status codes G, B, U, N for the %G? format specifier. git-verify-* returns success in the GOODSIG case only. This is somewhat in disagreement with gpg, which considers the first 5 of the 6 above as VALIDSIG, but we err on the very safe side. Introduce additional status codes E, X, Y, R for ERRSIG, EXPSIG, EXPKEYSIG, and REVKEYSIG so that a user of %G? gets more information about the absence of a 'G' on first glance. Requested-by: Alex <agrambot@xxxxxxxxx> Signed-off-by: Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- Documentation/pretty-formats.txt | 3 ++- gpg-interface.c | 2 +- pretty.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index c28ff2b919..179c9389aa 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -146,7 +146,8 @@ endif::git-rev-list[] - '%G?': show "G" for a good (valid) signature, "B" for a bad signature, "U" for a good signature with unknown validity, - "X" for a good expired signature, or good signature made by an expired key, + "X" for a good signature that has expired, + "Y" for a good signature made by an expired key, "R" for a good signature made by a revoked key, "E" if the signature cannot be checked (e.g. missing key) and "N" for no signature diff --git a/gpg-interface.c b/gpg-interface.c index 6999e7b469..e44cc27da1 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -35,7 +35,7 @@ static struct { { 'U', "\n[GNUPG:] TRUST_UNDEFINED" }, { 'E', "\n[GNUPG:] ERRSIG "}, { 'X', "\n[GNUPG:] EXPSIG "}, - { 'X', "\n[GNUPG:] EXPKEYSIG "}, + { 'Y', "\n[GNUPG:] EXPKEYSIG "}, { 'R', "\n[GNUPG:] REVKEYSIG "}, }; diff --git a/pretty.c b/pretty.c index 39a36cd825..f98b271069 100644 --- a/pretty.c +++ b/pretty.c @@ -1236,6 +1236,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */ case 'U': case 'N': case 'X': + case 'Y': case 'R': strbuf_addch(sb, c->signature_check.result); } -- 2.10.1-520-ge127bfd383