1*13de33a5SJulio Merino 2*13de33a5SJulio Merinofailures=0 3*13de33a5SJulio Merinounset LC_ALL 4*13de33a5SJulio Merinoexport LC_CTYPE=en_US.ISO8859-1 5*13de33a5SJulio Merinonl=' 6*13de33a5SJulio Merino' 7*13de33a5SJulio Merinoi=1 8*13de33a5SJulio Merinoset -f 9*13de33a5SJulio Merinowhile [ "$i" -le 255 ]; do 10*13de33a5SJulio Merino # A different byte still in the range 1..255. 11*13de33a5SJulio Merino i2=$((i^2+(i==2))) 12*13de33a5SJulio Merino # Add a character to work around command substitution's removal of 13*13de33a5SJulio Merino # final newlines, then remove it again. 14*13de33a5SJulio Merino c=$(printf \\"$(printf %o@ "$i")") 15*13de33a5SJulio Merino c=${c%@} 16*13de33a5SJulio Merino c2=$(printf \\"$(printf %o@ "$i2")") 17*13de33a5SJulio Merino c2=${c2%@} 18*13de33a5SJulio Merino case $c in 19*13de33a5SJulio Merino [\'$nl'$}();&|\"`']) c=M 20*13de33a5SJulio Merino esac 21*13de33a5SJulio Merino case $c2 in 22*13de33a5SJulio Merino [\'$nl'$}();&|\"`']) c2=N 23*13de33a5SJulio Merino esac 24*13de33a5SJulio Merino IFS=$c 25*13de33a5SJulio Merino command eval "set -- \${\$+$c2$c$c2$c$c2}" 26*13de33a5SJulio Merino if [ "$#" -ne 3 ] || [ "$1" != "$c2" ] || [ "$2" != "$c2" ] || 27*13de33a5SJulio Merino [ "$3" != "$c2" ]; then 28*13de33a5SJulio Merino echo "Bad results for separator $i (word $i2)" >&2 29*13de33a5SJulio Merino : $((failures += 1)) 30*13de33a5SJulio Merino fi 31*13de33a5SJulio Merino i=$((i+1)) 32*13de33a5SJulio Merinodone 33*13de33a5SJulio Merinoexit $((failures > 0)) 34