Re: [PATCH] git-send-email: treat field names as case-independent
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 7, 2013, 03:27 UTC
- Message-ID
- <7va9sllljh.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1357522498-8086-1-git-send-email-nickolai@csail.mit.edu>
Nickolai Zeldovich <nickolai@csail.mit.edu> writes:
Show 7 quoted lines
> Field names like To:, Cc:, etc should be treated as case-independent; > use a case-insensitive regexp to match them as such. Previously, > git-send-email would send email messages with a lowercase "cc:" line in > the body without actually sending a copy of the message to that address. > > Signed-off-by: Nickolai Zeldovich <nickolai@csail.mit.edu> > ---
While I think this patch is a sensible thing to do, I at the same time wonder who is writing "cc:" in the lowercase in the first place, and if that is one of our tools, we should fix that part as well. Such a header would leak out to the payload given to the underlying sendmail, doesn't it?
Leaking such lowercased headers of course is not a crime (the headers are case insensitive), but they look ugly.
Show 45 quoted lines
> git-send-email.perl | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 94c7f76..be809e5 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -1285,10 +1285,10 @@ foreach my $t (@files) {
> }
>
> if (defined $input_format && $input_format eq 'mbox') {
> - if (/^Subject:\s+(.*)$/) {
> + if (/^Subject:\s+(.*)$/i) {
> $subject = $1;
> }
> - elsif (/^From:\s+(.*)$/) {
> + elsif (/^From:\s+(.*)$/i) {
> ($author, $author_encoding) = unquote_rfc2047($1);
> next if $suppress_cc{'author'};
> next if $suppress_cc{'self'} and $author eq $sender;
> @@ -1296,14 +1296,14 @@ foreach my $t (@files) {
> $1, $_) unless $quiet;
> push @cc, $1;
> }
> - elsif (/^To:\s+(.*)$/) {
> + elsif (/^To:\s+(.*)$/i) {
> foreach my $addr (parse_address_line($1)) {
> printf("(mbox) Adding to: %s from line '%s'\n",
> $addr, $_) unless $quiet;
> push @to, $addr;
> }
> }
> - elsif (/^Cc:\s+(.*)$/) {
> + elsif (/^Cc:\s+(.*)$/i) {
> foreach my $addr (parse_address_line($1)) {
> if (unquote_rfc2047($addr) eq $sender) {
> next if ($suppress_cc{'self'});
> @@ -1325,7 +1325,7 @@ foreach my $t (@files) {
> elsif (/^Message-Id: (.*)/i) {
> $message_id = $1;
> }
> - elsif (!/^Date:\s/ && /^[-A-Za-z]+:\s+\S/) {
> + elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
> push @xh, $_;
> }