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

Re: [PATCH] send-email: ignore trailing whitespace in mailrc alias file

From
Jeff King <peff@peff.net>
Date
Mar 17, 2016, 23:58 UTC
Message-ID
<20160317235822.GA10612@sigill.intra.peff.net>
In-Reply-To
<1458252496-4118-1-git-send-email-sbeller@google.com>
On Thu, Mar 17, 2016 at 03:08:16PM -0700, Stefan Beller wrote:
> I just wrote the commit message as I would do, but offer you to claim
> authorship for that perl stuff. So in case you'd want to reword that,
> I'd ask you to that.  Also asking for your signoff. (But apart from
> that I consider this patch final.)

Yeah, I am happy to take the credit/blame when somebody inevitably shows a case where this does the wrong thing (I say inevitable because I assume that is the fate of all regexes -- to one day be proven to miss a corner case).

But surely you know that my commit messages are more verbose than that. :)

Here's what I would have written:
-- >8 --
Subject: [PATCH] send-email: ignore trailing whitespace in mailrc alias file

The regex for parsing mailrc considers everything after the second whitespace to be the email address, up to the end of the line. We have to include whitespace there, because you may have multiple space-separated addresses, each with their own internal quoting.

But if there is trailing whitespace, we include that, too. This confuses quotewords() when we try to split the individual addresses, and we end up storing "undef" in our alias list. Later parts of the code then access that, generating perl warnings.

Let's tweak our regex to throw away any trailing whitespace on each line.

Signed-off-by: Jeff King <peff@peff.net>
---
 git-send-email.perl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index d356901..c45b22a 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -533,7 +533,7 @@ my %parse_alias = (
 			$aliases{$alias} = \@addr
 		}}},
 	mailrc => sub { my $fh = shift; while (<$fh>) {
-		if (/^alias\s+(\S+)\s+(.*)$/) {
+		if (/^alias\s+(\S+)\s+(.*?)\s*$/) {
 			# spaces delimit multiple addresses
 			$aliases{$1} = [ quotewords('\s+', 0, $2) ];
 		}}},
-- 
2.8.0.rc3.378.gf2f7872
Previous: Stefan Beller
Message 2 of 2 in “send-email: ignore trailing whitespace in mailrc alias file”
  1. send-email: ignore trailing whitespace in mailrc alias fileStefan Beller, Mar 17, 2016
  2. Jeff KingMar 17, 2016

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.