From: Eric Sunshine Date: Sun, 31 May 2015 22:29:27 +0000 (-0400) Subject: send-email: refactor sendmail aliases parser X-Git-Tag: v2.5.0-rc0~28^2~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/09f1157bbf5daa8a4fd8de1d25edbb8961d44521?hp=--cc send-email: refactor sendmail aliases parser The sendmail aliases parser inlined into %parse_alias is already uncomfortably large and is expected to grow as additional functionality is implemented, so extract it to improve manageability. Signed-off-by: Eric Sunshine Signed-off-by: Junio C Hamano --- 09f1157bbf5daa8a4fd8de1d25edbb8961d44521 diff --git a/git-send-email.perl b/git-send-email.perl index 1380e6e163..76bb499fbb 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -487,6 +487,29 @@ sub split_addrs { } my %aliases; + +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) ]; + } else { + print STDERR "warning: sendmail line is not recognized: $_\n"; + } +} + +sub parse_sendmail_aliases { + my $fh = shift; + while (<$fh>) { + if (/^\s*(?:#.*)?$/) { next; } + parse_sendmail_alias($_); + } +} + my %parse_alias = ( # multiline formats can be supported in the future mutt => sub { my $fh = shift; while (<$fh>) { @@ -515,20 +538,7 @@ sub split_addrs { $aliases{$alias} = [ split_addrs($addr) ]; } } }, - - sendmail => sub { my $fh = shift; while (<$fh>) { - if (/^\s*(?:#.*)?$/) { - } elsif (/"/) { - 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) ]; - } else { - print STDERR "warning: sendmail line is not recognized: $_\n"; - }}}, - + sendmail => \&parse_sendmail_aliases, gnus => sub { my $fh = shift; while (<$fh>) { if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) { $aliases{$1} = [ $2 ];