send-email: suppress meaningless whitespaces in from field
authorRemi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>
Tue, 30 Jun 2015 12:16:51 +0000 (14:16 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Jul 2015 21:39:07 +0000 (14:39 -0700)
Remove leading and trailing whitespaces in from field before
interepreting it to improve consistency with other options. The
split_addrs function already take care of trailing and leading
whitespaces for to, cc and bcc fields.
The from option now:

- has the same behavior when passing arguments like
" jdoe@example.com ", "\t jdoe@example.com " or
"jdoe@example.com".

- interprets aliases in string containing leading and trailing
whitespaces such as " alias" or "alias\t" like other options.

Signed-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-send-email.perl
t/t9001-send-email.sh
index f4dbad3051e760f37d823c84884980c2c5978e35..62fc7d65e89097163c36453bc9122730cbdc71dc 100755 (executable)
@@ -761,6 +761,7 @@ sub file_declares_8bit_cte {
 }
 
 if (defined $sender) {
+       $sender =~ s/^\s+|\s+$//g;
        ($sender) = expand_aliases($sender);
 } else {
        $sender = $repoauthor || $repocommitter || '';
index 9aee4747fe7e49a21118b2b3033090cf78b934ee..bbfed5650d90ea98be50bd21c8dabc7ddb813e79 100755 (executable)
@@ -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