format-patch: make newline after signature conditional
authorJeff King <peff@peff.net>
Wed, 21 May 2014 21:07:51 +0000 (14:07 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 May 2014 21:27:48 +0000 (14:27 -0700)
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>
builtin/log.c
index 39e883635279ad21f3ddd7b224f484b9b04700b0..5acc0481e2f4c2096da02502c3026786a0460c34 100644 (file)
@@ -844,8 +844,13 @@ static void gen_message_id(struct rev_info *info, char *base)
 
 static void print_signature(void)
 {
-       if (signature && *signature)
-               printf("-- \n%s\n\n", signature);
+       if (!signature || !*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)