xref: /freebsd/bin/sh/tests/parser/func1.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*13de33a5SJulio Merino# POSIX does not require these bytes to work in function names,
2*13de33a5SJulio Merino# but making them all work seems a good goal.
3*13de33a5SJulio Merino
4*13de33a5SJulio Merinofailures=0
5*13de33a5SJulio Merinounset LC_ALL
6*13de33a5SJulio Merinoexport LC_CTYPE=en_US.ISO8859-1
7*13de33a5SJulio Merinoi=128
8*13de33a5SJulio Merinoset -f
9*13de33a5SJulio Merinowhile [ "$i" -le 255 ]; do
10*13de33a5SJulio Merino	c=$(printf \\"$(printf %o "$i")")
11*13de33a5SJulio Merino	ok=0
12*13de33a5SJulio Merino	eval "$c() { ok=1; }"
13*13de33a5SJulio Merino	$c
14*13de33a5SJulio Merino	ok1=$ok
15*13de33a5SJulio Merino	ok=0
16*13de33a5SJulio Merino	"$c"
17*13de33a5SJulio Merino	if [ "$ok" != 1 ] || [ "$ok1" != 1 ]; then
18*13de33a5SJulio Merino		echo "Bad results for character $i" >&2
19*13de33a5SJulio Merino		: $((failures += 1))
20*13de33a5SJulio Merino	fi
21*13de33a5SJulio Merino	unset -f $c
22*13de33a5SJulio Merino	i=$((i+1))
23*13de33a5SJulio Merinodone
24*13de33a5SJulio Merinoexit $((failures > 0))
25