25 lines
577 B
Plaintext
25 lines
577 B
Plaintext
|
# $FreeBSD$
|
||
|
|
||
|
failures=0
|
||
|
i=1
|
||
|
set -f
|
||
|
while [ "$i" -le 127 ]; do
|
||
|
# A different byte still in the range 1..127.
|
||
|
i2=$((i^2+(i==2)))
|
||
|
# Add a character to work around command substitution's removal of
|
||
|
# final newlines, then remove it again.
|
||
|
c=$(printf \\"$(printf %o@ "$i")")
|
||
|
c=${c%@}
|
||
|
c2=$(printf \\"$(printf %o@ "$i2")")
|
||
|
c2=${c2%@}
|
||
|
IFS=$c
|
||
|
set -- $c2$c$c2$c$c2
|
||
|
if [ "$#" -ne 3 ] || [ "$1" != "$c2" ] || [ "$2" != "$c2" ] ||
|
||
|
[ "$3" != "$c2" ]; then
|
||
|
echo "Bad results for separator $i (word $i2)" >&2
|
||
|
: $((failures += 1))
|
||
|
fi
|
||
|
i=$((i+1))
|
||
|
done
|
||
|
exit $((failures > 0))
|