From: Junio C Hamano Date: Wed, 16 Jun 2021 09:19:12 GMT Subject: Re: [BUG] range expressions in GIT_SKIP_TESTS are broken in master (was [BUG] question mark in GIT_SKIP_TESTS is broken in master) Message-ID: In-Reply-To: Jeff King writes: > 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.