diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index e6d466e9a5..7ae467ba41 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -394,8 +394,6 @@ described below: sendmail;; * Quoted aliases and quoted addresses are not supported: lines that contain a `"` symbol are ignored. -* Line continuations are not supported: lines that start with - whitespace characters, or end with a `\` symbol are ignored. * Redirection to a file (`/path/name`) or pipe (`|command`) is not supported. * File inclusion (`:include: /path/name`) is not supported. 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 = (