From 2532dd0605b15eeed41312558bf5babb50290236 Mon Sep 17 00:00:00 2001 From: Eric Sunshine Date: Sun, 31 May 2015 18:29:29 -0400 Subject: 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 Signed-off-by: Junio C Hamano --- git-send-email.perl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'git-send-email.perl') 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 = ( -- cgit v1.2.3