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

From: Jeff King <[email-masked]>
Date: Fri, 14 Nov 2014 15:02:39 -0500

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).

-Peff