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