1214512Sjilles# $FreeBSD: releng/10.2/bin/sh/tests/expansion/plus-minus6.0 214512 2010-10-29 13:42:18Z jilles $ 2214512Sjilles 3214512Sjillesfailures=0 4214512Sjillesunset LC_ALL 5214512Sjillesexport LC_CTYPE=en_US.ISO8859-1 6214512Sjillesnl=' 7214512Sjilles' 8214512Sjillesi=1 9214512Sjillesset -f 10214512Sjilleswhile [ "$i" -le 255 ]; do 11214512Sjilles # A different byte still in the range 1..255. 12214512Sjilles i2=$((i^2+(i==2))) 13214512Sjilles # Add a character to work around command substitution's removal of 14214512Sjilles # final newlines, then remove it again. 15214512Sjilles c=$(printf \\"$(printf %o@ "$i")") 16214512Sjilles c=${c%@} 17214512Sjilles c2=$(printf \\"$(printf %o@ "$i2")") 18214512Sjilles c2=${c2%@} 19214512Sjilles case $c in 20214512Sjilles [\'$nl'$}();&|\"`']) c=M 21214512Sjilles esac 22214512Sjilles case $c2 in 23214512Sjilles [\'$nl'$}();&|\"`']) c2=N 24214512Sjilles esac 25214512Sjilles IFS=$c 26214512Sjilles command eval "set -- \${\$+$c2$c$c2$c$c2}" 27214512Sjilles if [ "$#" -ne 3 ] || [ "$1" != "$c2" ] || [ "$2" != "$c2" ] || 28214512Sjilles [ "$3" != "$c2" ]; then 29214512Sjilles echo "Bad results for separator $i (word $i2)" >&2 30214512Sjilles : $((failures += 1)) 31214512Sjilles fi 32214512Sjilles i=$((i+1)) 33214512Sjillesdone 34214512Sjillesexit $((failures > 0)) 35