Re: [PATCH v7 1/2] format-patch: make newline after signature conditional
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:01:17
Jeremiah Mahler [off-list ref] writes:
From: Jeff King <redacted> When we print an email signature, we print the divider "-- \n", then the signature string, then two newlines. Traditionally 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 longer, multi-line signature, like: git format-patch --signature=' this is my long signature it has multiple lines ' ... We should notice that it already has its own trailing newline, and suppress one of ours.
That is a half-good example; the first line being a blank is misleading, as we are not doing anything about that, though. Other than that, the patch looks OK to me. If anybody complains we can fix it later to do more cleansing.
quoted hunk
Signed-off-by: Jeff King <redacted> Signed-off-by: Jeremiah Mahler <redacted> --- builtin/log.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)diff --git a/builtin/log.c b/builtin/log.c index 39e8836..5acc048 100644 --- a/builtin/log.c +++ b/builtin/log.c@@ -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)