All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] git-send-email-script - Fix loops that limit emails to unique values to be pedantically correct.
@ 2005-08-03  1:45 Ryan Anderson
  2005-08-03  1:45 ` [PATCH 2/2] Doc: update git-send-email-script documentation Ryan Anderson
  0 siblings, 1 reply; 2+ messages in thread
From: Ryan Anderson @ 2005-08-03  1:45 UTC (permalink / raw)
  To: Junio C Hamano, git; +Cc: Ryan Anderson

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>
---

 git-send-email-script |   35 ++++++++++++++++++++++++-----------
 1 files changed, 24 insertions(+), 11 deletions(-)

8e791ded8877746b82432f2b53f871197a3c3901
diff --git a/git-send-email-script b/git-send-email-script
--- 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, 
 
 # 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;
+}
+
+
+

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-08-03  1:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-03  1:45 [PATCH 1/2] git-send-email-script - Fix loops that limit emails to unique values to be pedantically correct Ryan Anderson
2005-08-03  1:45 ` [PATCH 2/2] Doc: update git-send-email-script documentation Ryan Anderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.