Add NetBSD /bin/sh to the -n whitelist.

NetBSD’s /bin/sh sets a special variable “NETBSD_SHELL” to identify
itself.  This means we can whitelist it as not having a buggy -n
implementation.

 * configure.ac: Assume -n mode works in shells that have a preset
 variable named NETBSD_SHELL.
This commit is contained in:
Zack Weinberg 2020-08-26 15:08:26 -04:00
parent df1866fd0c
commit 88e0d39a46
No known key found for this signature in database
GPG Key ID: 384F8E68AC65B0D5

View File

@ -64,7 +64,7 @@ AC_CACHE_CHECK([for a shell whose -n mode is known to work],
# follow with a hardwired list of shells that are known to work and can
# be identified as such, starting with the ones with the fewest
# syntactic extensions. Unfortunately, several shells that are also
# known to work can't be easily identified (e.g. BSD sh, dash).
# known to work can't be easily identified (e.g. some BSD shells and dash).
# Try ksh93, which is often buggy, and plain ksh and sh last.
for cand_sh in "$SHELL" pdksh bash zsh ksh93 ksh sh
do
@ -72,8 +72,9 @@ do
unset BASH_VERSION ZSH_VERSION
"$cand_sh" -c '
test ${BASH_VERSION+y} || # Bash
test ${KSH_VERSION+y} || # pdksh
test ${ZSH_VERSION+y} || # zsh
test ${KSH_VERSION+y} || # pdksh
test ${ZSH_VERSION+y} || # zsh
test ${NETBSD_SHELL+y} || # NetBSD sh
test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy
'
) 2>/dev/null