format-patch: make newline after signature conditional

When we print an email signature, we print the divider
"-- \n", then the signature string, then two newlines.

Usually the signature is a one-liner (and the default is just the
git version), so the extra newline makes sense.  But one could
easily specify a multi-line signature, like this:

  git format-patch --signature='this is my long signature

  it has multiple lines
  ' ...

and it may end with its own newline, in which case we do not have
to add yet another one.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jeremiah Mahler <jmmahler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2014-05-21 14:07:51 -07:00 committed by Junio C Hamano
parent 8ced8e40ac
commit c6076e2b4a

View File

@ -844,8 +844,13 @@ static void gen_message_id(struct rev_info *info, char *base)
static void print_signature(void) static void print_signature(void)
{ {
if (signature && *signature) if (!signature || !*signature)
printf("-- \n%s\n\n", signature); return;
printf("-- \n%s", signature);
if (signature[strlen(signature)-1] != '\n')
putchar('\n');
putchar('\n');
} }
static void add_branch_description(struct strbuf *buf, const char *branch_name) static void add_branch_description(struct strbuf *buf, const char *branch_name)