Subject: Re: [PATCH v2] allow TTY tests to run under recent Mac OS

From: Junio C Hamano <[email-masked]>
Date: Fri, 14 Nov 2014 12:16:27 -0800

Jeff King <[email-masked]> writes:

> On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote:
>
>> My understanding is that && and || have equal precedence, and this
>> seems to be borne out in testing at my shell. If the if/then method is
>> clearer I'm happy to go with that.
>
> I think the problem is that there are earlier parts of the chain. It
> currently looks like:
>
>   foo &&
>   bar &&
>   do_something
>
> but you are making it:
>
>   foo &&
>   bar || baz &&
>   do_something
>
> which will do_something whether or not "foo" is true. You need to put
> your "||" at a lower precedence than the rest of the chain. The "if"
> that Johannes mentioned works, though I think
>
>   test_have_prereq PERL &&
>   {
>     test "$(uname -s)" != Darwin ||
>     test "$(uname -r | cut -d. -f1)" -ge 13
>   } &&
>   ...
>
> is more obvious to read (but that's subjective, of course).

Thanks.

While I was reading this earlier I wondered the same thing and
concluded it was OK based on the equal precedence, but like Michael
I missed that there is yet another test before it.