diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2015-05-31 18:29:29 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-06-01 15:53:11 -0700 |
commit | 2532dd0605b15eeed41312558bf5babb50290236 (patch) | |
tree | e5cf878d1268c705a4bf07a90ba00a5bb726a1ec /git-send-email.perl | |
parent | 020be85f5153e2a3a231e40fe81af9e4a1c01cd4 (diff) | |
download | git-2532dd0605b15eeed41312558bf5babb50290236.tar.gz |
send-email: implement sendmail aliases line continuation support
Logical lines in sendmail aliases files can be spread over multiple
physical lines[1]. A line beginning with whitespace is folded into the
preceding line. A line ending with '\' consumes the following line.
[1]: https://www.freebsd.org/cgi/man.cgi?query=aliases&sektion=5
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-x | git-send-email.perl | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index e777bd3a60..eb1d678fb0 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -492,8 +492,6 @@ sub parse_sendmail_alias { local $_ = shift; if (/"/) { print STDERR "warning: sendmail alias with quotes is not supported: $_\n"; - } elsif (/^\s|\\$/) { - print STDERR "warning: sendmail continuation line is not supported: $_\n"; } elsif (/^(\S+?)\s*:\s*(.+)$/) { my ($alias, $addr) = ($1, $2); $aliases{$alias} = [ split_addrs($addr) ]; @@ -504,10 +502,16 @@ sub parse_sendmail_alias { sub parse_sendmail_aliases { my $fh = shift; + my $s = ''; while (<$fh>) { + chomp; next if /^\s*$/ || /^\s*#/; - parse_sendmail_alias($_); + $s .= $_, next if $s =~ s/\\$// || s/^\s+//; + parse_sendmail_alias($s) if $s; + $s = $_; } + $s =~ s/\\$//; # silently tolerate stray '\' on last line + parse_sendmail_alias($s) if $s; } my %parse_alias = ( |