diff options
author | Ryan Anderson <ryan@michonline.com> | 2005-08-02 21:45:22 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-02 22:53:26 -0700 |
commit | e205735da94f6ce44c56f6088b392ba5a3268d77 (patch) | |
tree | 91fc21cdc7801d3b4a2f93679825d416037ed3c3 | |
parent | [PATCH] git-send-email-script - fix 2 small bugs that snuck through an untest... (diff) | |
download | tgif-e205735da94f6ce44c56f6088b392ba5a3268d77.tar.xz |
[PATCH] git-send-email-script - Fix loops that limit emails to unique values to be pedantically correct.
Email addresses aren't generally case sensitive in the real world, but
technically, they *can* be. So, let's do the right thing.
Additionally, fix the generated message-id to have the right template used.
Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-send-email-script | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/git-send-email-script b/git-send-email-script index 59bd691fc5..0b0b6f59ab 100755 --- a/git-send-email-script +++ b/git-send-email-script @@ -24,6 +24,8 @@ use Getopt::Long; use Data::Dumper; use Email::Valid; +sub unique_email_list(@); + # Variables we fill in automatically, or via prompting: my (@to,@cc,$initial_reply_to,$initial_subject,@files,$from); @@ -138,8 +140,9 @@ Options: --to Specify the primary "To:" line of the email. --subject Specify the initial "Subject:" line. --in-reply-to Specify the first "In-Reply-To:" header line. - --chain-reply-to If set, the replies will all be to the first - email sent, rather than to the last email sent. + --chain-reply-to If set, the replies will all be to the previous + email sent, rather than to the first email sent. + Defaults to on. --smtp-server If set, specifies the outgoing SMTP server to use. Defaults to localhost. @@ -161,7 +164,7 @@ our ($message_id, $cc, %mail, $subject, $reply_to, $message); # We'll setup a template for the message id, using the "from" address: my $message_id_from = Email::Valid->address($from); -my $message_id_template = "<%s-git-send-email-$from>"; +my $message_id_template = "<%s-git-send-email-$message_id_from>"; sub make_message_id { @@ -178,10 +181,7 @@ $cc = ""; sub send_message { - my %to; - $to{lc(Email::Valid->address($_))}++ for (@to); - - my $to = join(",", keys %to); + my $to = join (", ", unique_email_list(@to)); %mail = ( To => $to, From => $from, @@ -267,10 +267,7 @@ foreach my $t (@files) { } close F; - my %clean_ccs; - $clean_ccs{lc(Email::Valid->address($_))}++ for @cc; - - $cc = join(",", keys %clean_ccs); + $cc = join(", ", unique_email_list(@cc)); send_message(); @@ -281,3 +278,19 @@ foreach my $t (@files) { make_message_id(); # $subject = "Re: ".$initial_subject; } + + +sub unique_email_list(@) { + my %seen; + my @emails; + + foreach my $entry (@_) { + my $clean = Email::Valid->address($entry); + next if $seen{$clean}++; + push @emails, $entry; + } + return @emails; +} + + + |