public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses
@ 2015-06-09 18:50 Remi Lespinet
  2015-06-09 18:50 ` [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion Remi Lespinet
  2015-06-10  8:17 ` [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Matthieu Moy
  0 siblings, 2 replies; 11+ messages in thread
From: Remi Lespinet @ 2015-06-09 18:50 UTC (permalink / raw)
  To: git
  Cc: Remi Galan, Remi Lespinet, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite, Matthieu Moy

Remove leading and trailing whitespaces when sanitizing addresses so
that git send-email give the same output when passing arguments like
" jdoe@example•com   " or "\t jdoe@example•com " as with
"jdoe@example•com".

The next commit will introduce a test for this aswell.

Signed-off-by: Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr>
---
 git-send-email.perl | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/git-send-email.perl b/git-send-email.perl
index ea03308..3d144bd 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -978,6 +978,9 @@ sub sanitize_address {
 	# remove garbage after email address
 	$recipient =~ s/(.*>).*$/$1/;
 
+	# remove leading and trailing whitespace
+	$recipient =~ s/^\s+|\s+$//g;
+
 	my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)\s*(<.*)/);
 
 	if (not $recipient_name) {
-- 
1.9.1

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

* [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-09 18:50 [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Remi Lespinet
@ 2015-06-09 18:50 ` Remi Lespinet
  2015-06-10  8:32   ` Matthieu Moy
  2015-06-10  8:17 ` [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Matthieu Moy
  1 sibling, 1 reply; 11+ messages in thread
From: Remi Lespinet @ 2015-06-09 18:50 UTC (permalink / raw)
  To: git
  Cc: Remi Galan, Remi Lespinet, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite, Matthieu Moy

As alias file formats supported by git send-email doesn't take
whitespace into account, it is useless to consider whitespaces in
alias name. remove leading and trailing whitespace before expanding
allow to recognize strings like " alias" or "alias\t" passed by --to,
--cc, --bcc options or by the git send-email prompt.

Signed-off-by: Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr>
---
 git-send-email.perl   |  1 +
 t/t9001-send-email.sh | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/git-send-email.perl b/git-send-email.perl
index 3d144bd..34c8b8b 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -787,6 +787,7 @@ sub expand_aliases {
 my %EXPANDED_ALIASES;
 sub expand_one_alias {
 	my $alias = shift;
+	$alias =~ s/^\s+|\s+$//g;
 	if ($EXPANDED_ALIASES{$alias}) {
 		die "fatal: alias '$alias' expands to itself\n";
 	}
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 9aee474..bbfed56 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -1692,4 +1692,28 @@ test_expect_success $PREREQ 'aliases work with email list' '
 	test_cmp expected-list actual-list
 '
 
+test_expect_success $PREREQ 'leading and trailing whitespaces are removed' '
+	echo "alias to2 to2@example•com" >.mutt &&
+	echo "alias cc1 Cc 1 <cc1@example•com>" >>.mutt &&
+	test_config sendemail.aliasesfile ".mutt" &&
+	test_config sendemail.aliasfiletype mutt &&
+	TO1=$(echo "QTo 1 <to1@example•com>" | q_to_tab) &&
+	TO2=$(echo "QZto2" | qz_to_tab_space) &&
+	CC1=$(echo "cc1" | append_cr) &&
+	BCC1=$(echo "Q bcc1@example•com Q" | q_to_nul) &&
+	git send-email \
+	--dry-run \
+	--from="	Example <from@example•com>" \
+	--to="$TO1" \
+	--to="$TO2" \
+	--to="  to3@example•com   " \
+	--cc="$CC1" \
+	--cc="Cc2 <cc2@example•com>" \
+	--bcc="$BCC1" \
+	--bcc="bcc2@example•com" \
+	0001-add-master.patch | replace_variable_fields \
+	>actual-list &&
+	test_cmp expected-list actual-list
+'
+
 test_done
-- 
1.9.1

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

* Re: [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses
  2015-06-09 18:50 [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Remi Lespinet
  2015-06-09 18:50 ` [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion Remi Lespinet
@ 2015-06-10  8:17 ` Matthieu Moy
  2015-06-10  8:33   ` Remi Lespinet
  1 sibling, 1 reply; 11+ messages in thread
From: Matthieu Moy @ 2015-06-10  8:17 UTC (permalink / raw)
  To: Remi Lespinet
  Cc: git, Remi Galan, Guillaume Pages, Louis-Alexandre Stuber,
	Antoine Delaite

Nothing serious, but you did something weird while sending. This message
does not have a References: or an In-reply-to: field, so it breaks
threading. See how it's displayed on

  http://thread.gmane.org/gmane.comp.version-control.git

Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:

> Remove leading and trailing whitespaces when sanitizing addresses so
> that git send-email give the same output when passing arguments like
> " jdoe@example•com   " or "\t jdoe@example•com " as with
> "jdoe@example•com".
>
> The next commit will introduce a test for this aswell.

s/aswell/as well/

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* Re: [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-09 18:50 ` [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion Remi Lespinet
@ 2015-06-10  8:32   ` Matthieu Moy
  2015-06-10  9:30     ` Remi Lespinet
  0 siblings, 1 reply; 11+ messages in thread
From: Matthieu Moy @ 2015-06-10  8:32 UTC (permalink / raw)
  To: Remi Lespinet
  Cc: git, Remi Galan, Guillaume Pages, Louis-Alexandre Stuber,
	Antoine Delaite

Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:

> As alias file formats supported by git send-email doesn't take
> whitespace into account, it is useless to consider whitespaces in
> alias name. remove leading and trailing whitespace before expanding

s/remove/Remove/

> allow to recognize strings like " alias" or "alias\t" passed by --to,
> --cc, --bcc options or by the git send-email prompt.
>
> Signed-off-by: Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr>
> ---
>  git-send-email.perl   |  1 +
>  t/t9001-send-email.sh | 24 ++++++++++++++++++++++++
>  2 files changed, 25 insertions(+)
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 3d144bd..34c8b8b 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -787,6 +787,7 @@ sub expand_aliases {
>  my %EXPANDED_ALIASES;
>  sub expand_one_alias {
>  	my $alias = shift;
> +	$alias =~ s/^\s+|\s+$//g;
>  	if ($EXPANDED_ALIASES{$alias}) {
>  		die "fatal: alias '$alias' expands to itself\n";
>  	}

You should explain why you need that, when the previous patch was
already about removing whitespaces around addresses. I finally
understood that this was needed because alias expansion comes before
sanitize_address, but the commit message should have told me that.

Actually, once you have this, PATCH 6/7 becomes useless, right? (at
least, the test passes if I revert it)

It seems to me that doing this space trimming just once, inside or right
after split_at_commas would be clearer.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses
  2015-06-10  8:17 ` [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Matthieu Moy
@ 2015-06-10  8:33   ` Remi Lespinet
  0 siblings, 0 replies; 11+ messages in thread
From: Remi Lespinet @ 2015-06-10  8:33 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: git, Remi Galan, Guillaume Pages, Louis-Alexandre Stuber,
	Antoine Delaite

> Nothing serious, but you did something weird while sending. This message
> does not have a References: or an In-reply-to: field, so it breaks
> threading. See how it's displayed on
> 
>   http://thread.gmane.org/gmane.comp.version-control.git

Yes, send-email was aborted after 5/7, I realized and retry
sending 6/7 and 7/7 but I didn't noticed that. I'll be
careful next time, thanks.

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

* [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10  8:32   ` Matthieu Moy
@ 2015-06-10  9:30     ` Remi Lespinet
  2015-06-10 15:15       ` Junio C Hamano
  0 siblings, 1 reply; 11+ messages in thread
From: Remi Lespinet @ 2015-06-10  9:30 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: git, Remi Galan, Guillaume Pages, Louis-Alexandre Stuber,
	Antoine Delaite

Matthieu Moy <Matthieu.Moy@grenoble-inp•fr> writes:

> Actually, once you have this, PATCH 6/7 becomes useless, right? (at
> least, the test passes if I revert it)

> It seems to me that doing this space trimming just once, inside or right
> after split_at_commas would be clearer.

You're right, I put it twice because of there's occurrences of
sanitize_address which are not associated with expand_aliases, but it
seems that it's all taken care of separately in different regexp. So
there's no point to 6/7.

I agree, I'd like to put it right after split_at_commas in a separate
function "trim_list". Is it a good idea even if the function is one
line long ?

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

* Re: [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10  9:30     ` Remi Lespinet
@ 2015-06-10 15:15       ` Junio C Hamano
  2015-06-10 15:28         ` Matthieu Moy
  0 siblings, 1 reply; 11+ messages in thread
From: Junio C Hamano @ 2015-06-10 15:15 UTC (permalink / raw)
  To: Remi Lespinet
  Cc: Matthieu Moy, git, Remi Galan, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite

Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:

> I agree, I'd like to put it right after split_at_commas in a separate
> function "trim_list". Is it a good idea even if the function is one
> line long ?

Hmph, if I have "A, B, C" and call a function that gives an array of
addresses, treating the input as comma-separated addresses, I would
expect ("A", "B", "C") to be returned from that function, instead of
having to later trim the whitespace around what is returned.

It suggests that split-at-commas _is_ a wrong abstraction, doesn't
it?  In other words, I think whitespace trimming is part of what the
split-a-single-string-into-array-of-addresses helper function should
be doing.

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

* Re: [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10 15:15       ` Junio C Hamano
@ 2015-06-10 15:28         ` Matthieu Moy
  2015-06-10 16:10           ` Remi Lespinet
  2015-06-10 16:15           ` Junio C Hamano
  0 siblings, 2 replies; 11+ messages in thread
From: Matthieu Moy @ 2015-06-10 15:28 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Remi Lespinet, git, Remi Galan, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite

Junio C Hamano <gitster@pobox•com> writes:

> Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:
>
>> I agree, I'd like to put it right after split_at_commas in a separate
>> function "trim_list". Is it a good idea even if the function is one
>> line long ?
>
> Hmph, if I have "A, B, C" and call a function that gives an array of
> addresses, treating the input as comma-separated addresses, I would
> expect ("A", "B", "C") to be returned from that function, instead of
> having to later trim the whitespace around what is returned.

It is actually doing this. But if you have " A,B,C  ", then you'll get
" A", "B", "C  ". But once you're trimming around commas, trimming
leading and trailing spaces fits well with split itself.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10 15:28         ` Matthieu Moy
@ 2015-06-10 16:10           ` Remi Lespinet
  2015-06-10 16:15           ` Junio C Hamano
  1 sibling, 0 replies; 11+ messages in thread
From: Remi Lespinet @ 2015-06-10 16:10 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: Junio C Hamano, git, Remi Galan, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite

Matthieu Moy <Matthieu.Moy@grenoble-inp•fr> writes:

> Junio C Hamano <gitster@pobox•com> writes:
> 
> > Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:
> >
> >> I agree, I'd like to put it right after split_at_commas in a separate
> >> function "trim_list". Is it a good idea even if the function is one
> >> line long ?
> >
> > Hmph, if I have "A, B, C" and call a function that gives an array of
> > addresses, treating the input as comma-separated addresses, I would
> > expect ("A", "B", "C") to be returned from that function, instead of
> > having to later trim the whitespace around what is returned.
> 
> It is actually doing this. But if you have " A,B,C  ", then you'll get
> " A", "B", "C  ". But once you're trimming around commas, trimming
> leading and trailing spaces fits well with split itself.

Yes and if we have a single address with leading or/and trailing
whitespaces, such as " A ", I think that we don't expect
split_in_commas to suppress these whitespaces as there's no commas in
this address. As Junio said, I think I should rename the function.

Thanks!

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

* Re: [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10 15:28         ` Matthieu Moy
  2015-06-10 16:10           ` Remi Lespinet
@ 2015-06-10 16:15           ` Junio C Hamano
  2015-06-10 16:25             ` Matthieu Moy
  1 sibling, 1 reply; 11+ messages in thread
From: Junio C Hamano @ 2015-06-10 16:15 UTC (permalink / raw)
  To: Matthieu Moy
  Cc: Remi Lespinet, git, Remi Galan, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite

Matthieu Moy <Matthieu.Moy@grenoble-inp•fr> writes:

> Junio C Hamano <gitster@pobox•com> writes:
>
>> Remi Lespinet <remi.lespinet@ensimag•grenoble-inp.fr> writes:
>>
>>> I agree, I'd like to put it right after split_at_commas in a separate
>>> function "trim_list". Is it a good idea even if the function is one
>>> line long ?
>>
>> Hmph, if I have "A, B, C" and call a function that gives an array of
>> addresses, treating the input as comma-separated addresses, I would
>> expect ("A", "B", "C") to be returned from that function, instead of
>> having to later trim the whitespace around what is returned.
>
> It is actually doing this. But if you have " A,B,C  ", then you'll get
> " A", "B", "C  ". But once you're trimming around commas, trimming
> leading and trailing spaces fits well with split itself.

I guess we are saying the same thing, then?  That is, trim-list as a
separate step does not make sense an it is part of the job for the
helper to turn a single list with multiple addresses into an array?

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

* Re: [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion
  2015-06-10 16:15           ` Junio C Hamano
@ 2015-06-10 16:25             ` Matthieu Moy
  0 siblings, 0 replies; 11+ messages in thread
From: Matthieu Moy @ 2015-06-10 16:25 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Remi Lespinet, git, Remi Galan, Guillaume Pages,
	Louis-Alexandre Stuber, Antoine Delaite

Junio C Hamano <gitster@pobox•com> writes:

> Matthieu Moy <Matthieu.Moy@grenoble-inp•fr> writes:
>
>> Junio C Hamano <gitster@pobox•com> writes:
>>
>>> Hmph, if I have "A, B, C" and call a function that gives an array of
>>> addresses, treating the input as comma-separated addresses, I would
>>> expect ("A", "B", "C") to be returned from that function, instead of
>>> having to later trim the whitespace around what is returned.
>>
>> It is actually doing this. But if you have " A,B,C  ", then you'll get
>> " A", "B", "C  ". But once you're trimming around commas, trimming
>> leading and trailing spaces fits well with split itself.
>
> I guess we are saying the same thing, then?  That is, trim-list as a
> separate step does not make sense an it is part of the job for the
> helper to turn a single list with multiple addresses into an array?

Yes. I was clarifying what was done and what wasn't, not disagreeing.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

end of thread, other threads:[~2015-06-10 16:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-09 18:50 [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Remi Lespinet
2015-06-09 18:50 ` [PATCH v3 7/7] send-email: suppress leading and trailing whitespaces before alias expansion Remi Lespinet
2015-06-10  8:32   ` Matthieu Moy
2015-06-10  9:30     ` Remi Lespinet
2015-06-10 15:15       ` Junio C Hamano
2015-06-10 15:28         ` Matthieu Moy
2015-06-10 16:10           ` Remi Lespinet
2015-06-10 16:15           ` Junio C Hamano
2015-06-10 16:25             ` Matthieu Moy
2015-06-10  8:17 ` [PATCH v3 6/7] send-email: suppress leading and trailing whitespaces in addresses Matthieu Moy
2015-06-10  8:33   ` Remi Lespinet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox