Re: [PATCH v2] allow TTY tests to run under recent Mac OS
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:02:56
Jeff King [off-list ref] writes:
On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote:quoted
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.