send-email: ignore trailing whitespace in mailrc alias file
authorJeff King <peff@peff.net>
Thu, 17 Mar 2016 23:58:22 +0000 (19:58 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Mar 2016 21:47:10 +0000 (14:47 -0700)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-send-email.perl
index d356901348042a7f2ec67211857e4d551d169d52..c45b22a19a06234d1106eedfeb8f80d29c37370e 100755 (executable)
@@ -533,7 +533,7 @@ sub parse_sendmail_aliases {
                        $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) ];
                }}},