git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v9 1/2] format-patch: make newline after signature conditional

From
Jeremiah Mahler <jmmahler@gmail.com>
Date
May 24, 2014, 04:08 UTC
Message-ID
<d74db966b42529b7d222745b2950e97ba5f46822.1400904004.git.jmmahler@gmail.com>
In-Reply-To
<cover.1400904004.git.jmmahler@gmail.com>
From: Jeff King <peff@peff.net>

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.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jeremiah Mahler <jmmahler@gmail.com>
---
 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)
-- 
Jeremiah Mahler
jmmahler@gmail.com
http://github.com/jmahler
Previous: Jeremiah MahlerNext: Jeremiah Mahler
Message 2 of 3 in “format-patch --signature-file=<file>”
  1. 0/2 format-patch --signature-file=<file>Jeremiah Mahler, May 24, 2014
  2. 1/2 format-patch: make newline after signature conditionalJeremiah Mahler, May 24, 2014
  3. 2/2 format-patch --signature-file=<file>Jeremiah Mahler, May 24, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.