From fa22b78e7db4eb2f992f07b91526e9aa0fc6ce2a Mon Sep 17 00:00:00 2001 From: ISSOtm Date: Tue, 5 May 2026 16:03:33 +0200 Subject: [PATCH] Use `type` instead of `which` in shell scripts The latter is not a Bash built-in, and some environments turn out to produce non-conforming return codes. `type` is provided by Bash itself, so we can rely on it better. --- test/asm/test.sh | 4 ++-- test/fix/test.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/asm/test.sh b/test/asm/test.sh index 64eed9ec..bf9c928f 100755 --- a/test/asm/test.sh +++ b/test/asm/test.sh @@ -188,7 +188,7 @@ evaluateDepTest () { "$RGBASM" $RGBASMFLAGS -o "$o" "$i"/a.asm >"$output" 2>"$errput" fixed_output="$input" - if which cygpath &>/dev/null; then + if type -t cygpath >/dev/null; then # MinGW needs the Windows path substituted but with forward slash separators; # Cygwin has `cygpath` but just needs the original path substituted. subst1="$(printf '%s\n' "$o" | sed 's:[][\/.^$*]:\\&:g')" @@ -215,7 +215,7 @@ evaluateDepTest "continues-after-missing-preinclude" evaluateDepTest "exits-after-missing-preinclude" i="state-file" -if which cygpath &>/dev/null; then +if type -t cygpath >/dev/null; then # MinGW translates path names before passing them as command-line arguments, # but does not do so when they are prefixed, so we have to do it ourselves. state_outname="$(cygpath -w "$o")" diff --git a/test/fix/test.sh b/test/fix/test.sh index 61fbdcc6..636bb417 100755 --- a/test/fix/test.sh +++ b/test/fix/test.sh @@ -10,7 +10,7 @@ trap "cd; rm -rf ${tmpdir@Q}" EXIT src="$PWD" cd "$tmpdir" || exit -if which cygpath &>/dev/null; then +if type -t cygpath >/dev/null; then # MinGW needs the Windows path substituted but with forward slash separators; # Cygwin has `cygpath` but just needs the original path substituted. subst1="$(printf '%s\n' "$src" | sed 's:[][\/.^$*]:\\&:g')"