All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ryan Anderson <ryan@michonline.com>
To: Junio C Hamano <junkio@cox.net>, git@vger.kernel.org
Cc: Ryan Anderson <ryan@michonline.com>
Subject: [PATCH 1/2] git-send-email-script - Fix loops that limit emails to unique values to be pedantically correct.
Date: Tue, 2 Aug 2005 21:45:22 -0400	[thread overview]
Message-ID: <1123033522656-git-send-email-ryan@michonline.com> (raw)
In-Reply-To: 

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;
+}
+
+
+

             reply	other threads:[~2005-08-03  1:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-03  1:45 Ryan Anderson [this message]
2005-08-03  1:45 ` [PATCH 2/2] Doc: update git-send-email-script documentation Ryan Anderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1123033522656-git-send-email-ryan@michonline.com \
    --to=ryan@michonline.com \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.