Re: [BUG] range expressions in GIT_SKIP_TESTS are broken in master (was [BUG] question mark in GIT_SKIP_TESTS is broken in master)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 16, 2021, 09:19 UTC
- Message-ID
- <xmqqim2ep3ov.fsf@gitster.g>
- In-Reply-To
- <YMm2Wlb+eJDL7+ua@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 19 quoted lines
> It's surprisingly hard to do field-splitting without pathname globbing > in pure shell. I couldn't find a way without using "set -f". That's in > POSIX, but it feels funny tweaking a global that can effect how other > code runs. We can at least constraint it to a subshell close to the > point of use: > ... > - for pattern_ > + (set -f > + for pattern_ in $* > do > case "$arg" in > $pattern_) > - return 0 > + exit 0 > esac > done > - return 1 > + exit 1) > }
Nice. "set -f" is what I wanted to find myself but couldn't, when I wrote the message you are responding to.
> -if match_pattern_list "$this_test" $GIT_SKIP_TESTS > +if match_pattern_list "$this_test" "$GIT_SKIP_TESTS"
OK. 'for pattern_ in $*' that flattens $* allows us to quote it here, passing it as a single argument without globbing.