threads / patch / 28676

patcht7800: avoid arithmetic expansion notation

Subject: [PATCH] t7800: avoid arithmetic expansion notation

## tl;dr

3 messages between Oct 14, 2011 and Oct 14, 2011. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Michael J Gruber· Oct 14, 2011, 12:15 UTC · lore

ba959de (git-difftool: allow skipping file by typing 'n' at prompt, 2011-10-08) introduced shell code like

$((foo; bar) | baz)

which some shells (e.g. bash, dash) interpret as an unfinished arithmetic evaluation $(( expr )).

Write this as
$({foo; bar; } | baz)
which is unambiguous and also avoids an unnecessary subshell.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
 t/t7800-difftool.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to t/t7800-difftool.sh +2 −2
diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
index 7fc2b3a..76a8b70 100755
--- a/t/t7800-difftool.sh
+++ b/t/t7800-difftool.sh
@@ -289,7 +289,7 @@ test_expect_success PERL 'setup with 2 files different' '
 '
 
 test_expect_success PERL 'say no to the first file' '
-	diff=$((echo n; echo) | git difftool -x cat branch) &&
+	diff=$({ echo n; echo; } | git difftool -x cat branch) &&
 
 	echo "$diff" | stdin_contains m2 &&
 	echo "$diff" | stdin_contains br2 &&
@@ -298,7 +298,7 @@ test_expect_success PERL 'say no to the first file' '
 '
 
 test_expect_success PERL 'say no to the second file' '
-	diff=$((echo; echo n) | git difftool -x cat branch) &&
+	diff=$({ echo; echo n; } | git difftool -x cat branch) &&
 
 	echo "$diff" | stdin_contains master &&
 	echo "$diff" | stdin_contains branch &&
-- 
1.7.7.338.g0156b
Junio C Hamano· Oct 14, 2011, 18:00 UTC · re: Michael J Gruber · lore

Re: [PATCH] t7800: avoid arithmetic expansion notation

Michael J Gruber <git@drmicha.warpmail.net> writes:
Show 7 quoted lines
> ba959de (git-difftool: allow skipping file by typing 'n' at prompt, 2011-10-08)
> introduced shell code like
>
> $((foo; bar) | baz)
>
> which some shells (e.g. bash, dash) interpret as an unfinished arithmetic
> evaluation $(( expr )).

Ahh, thanks, I should have caught this. I recall I rewrote a similar one to $( (command; command) | command ) more than once before.

Junio C Hamano· Oct 14, 2011, 19:00 UTC · re: Junio C Hamano · lore

Re: [PATCH] t7800: avoid arithmetic expansion notation

Junio C Hamano <gitster@pobox.com> writes:
Show 12 quoted lines
> Michael J Gruber <git@drmicha.warpmail.net> writes:
>
>> ba959de (git-difftool: allow skipping file by typing 'n' at prompt, 2011-10-08)
>> introduced shell code like
>>
>> $((foo; bar) | baz)
>>
>> which some shells (e.g. bash, dash) interpret as an unfinished arithmetic
>> evaluation $(( expr )).
>
> Ahh, thanks, I should have caught this. I recall I rewrote a similar one
> to $( (command; command) | command ) more than once before.

Forgot to mention that I love to see the issues on topics discovered and corrected before they are still cooking in 'next', like this ;-)

Thanks all.

← back to recent threads