diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-11-30 22:38:20 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-11-30 22:38:20 -0800 |
commit | 69f4ce553708ee5ce474faaa9c45312f38aad563 (patch) | |
tree | 54ac3cf08b95469dcbed7dc1fb8a0e7bf6115309 | |
parent | 7f871c6eccd0b9925310b3f0c60c9ef458e6f109 (diff) | |
download | git-69f4ce553708ee5ce474faaa9c45312f38aad563.tar.gz git-69f4ce553708ee5ce474faaa9c45312f38aad563.tar.xz |
send-email: do not reverse the command line arguments
The loop picks elements from @ARGV one by one, sifts them into arguments
meant for format-patch and the script itself, and pushes them to @files
and @rev_list_opts arrays. Pick elements from @ARGV starting at the
beginning using shift, instead of at the end using pop, as push appends
them to the end of the array.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-send-email.perl | 2 | ||||
-rwxr-xr-x | t/t9001-send-email.sh | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index 7508f8ff2..3112f769c 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -421,7 +421,7 @@ EOF # Now that all the defaults are set, process the rest of the command line # arguments and collect up the files that need to be processed. my @rev_list_opts; -while (my $f = pop @ARGV) { +while (defined(my $f = shift @ARGV)) { if ($f eq "--") { push @rev_list_opts, "--", @ARGV; @ARGV = (); diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 617e97d96..cb3d18377 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -300,4 +300,17 @@ test_expect_success 'detects ambiguous reference/file conflict' ' grep disambiguate errors ' +test_expect_success 'feed two files' ' + rm -fr outdir && + git format-patch -2 -o outdir && + GIT_SEND_EMAIL_NOTTY=1 git send-email \ + --dry-run \ + --from="Example <nobody@example.com>" \ + --to=nobody@example.com \ + outdir/000?-*.patch 2>errors >out && + grep "^Subject: " out >subjects && + test "z$(sed -n -e 1p subjects)" = "zSubject: [PATCH 1/2] Second." && + test "z$(sed -n -e 2p subjects)" = "zSubject: [PATCH 2/2] add master" +' + test_done |