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

git-mailinfo: cut lines at ^M

From
Linus Torvalds <torvalds@osdl.org>
Date
Jan 16, 2006, 19:13 UTC
Message-ID
<Pine.LNX.4.64.0601161104070.13339@g5.osdl.org>
This changes "eatspace()" to cut lines at the first ^M (\r, CR) character.

Normally it should make no difference at all, since even if you have a non-UNIX CR/LF end-of-line, it would have removed the ^M at the end of the line as whitespace.

The main reason for this patch is that I seem to have something buggy in my mail path (possibly fetchmail) which very occasionally causes the mail headers to have an appended "^M)" line. This silly thing works around it, and shouldn't hurt anything else.

The alternative would be to simply disallow control characters in the commit message (so that I would not commit these things by mistake).

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

Junio, feel free to ignore this. It shouldn't hurt, but admittedly it's a stupid hack for a problem that has nothing to do with git. The "disallow control characters" fix is probably better, if you prefer that I can do it that way instead.

		Linus
diff --git a/mailinfo.c b/mailinfo.c
index 0265a29..e1c95a9 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -226,9 +226,19 @@ static int is_multipart_boundary(const c
 
 static int eatspace(char *line)
 {
-	int len = strlen(line);
-	while (len > 0 && isspace(line[len-1]))
-		line[--len] = 0;
+	int len, idx;
+
+	len = idx = 0;
+	for (;;) {
+		unsigned char c = line[idx++];
+		if (isspace(c)) {
+			if (c == '\n' || c == '\r')
+				break;
+			continue;
+		}
+		len = idx;
+	}
+	line[len] = 0;
 	return len;
 }
 
Next: Junio C Hamano
Message 1 of 3 in “git-mailinfo: cut lines at ^M”
  1. Linus TorvaldsJan 16, 2006
  2. Junio C HamanoJan 16, 2006
  3. Linus TorvaldsJan 16, 2006

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.