Re: [PATCH] for-each-ref: add split message parts to %(contents:*).
From: Jeff King <hidden>
Date: 2016-06-15 22:51:57
On Wed, Aug 31, 2011 at 03:54:35PM -0700, Junio C Hamano wrote:
quoted
+The complete message in a commit and tag object is `contents`. +Its first line is `contents:subject`, the remaining lines +are `contents:body` and the optional GPG signature +is `contents:signature`.To match the parsing of commit objects, I would prefer to see "subject" to mean "the first paragraph" (usually the first line alone but that is purely from convention), but that probably is a separate topic.
Good idea. I suspect pretty.c:format_subject can be reused here.
To paraphrase the last part of your sentence, if a tag is merely annotated and not signed, contents:signature would be empty (I am just making sure that I am reading the description correctly).
That is what I checked for in the tests I added.
quoted
while (*buf == '\n') buf++; /* skip blank between subject and body */ *body = buf; + *signature = buf + parse_signature(buf, strlen(buf));If there is no signature, parse_signature() would return (size_t) 0, no?
No, it returns strlen(buf) in that case, making signature the empty string. It would perhaps better be called find_signature_in_body(), since it is actually about parsing the rest of the body until we get to the signature. -Peff