1# $FreeBSD$ 2IFS=, 3 4SPECIAL="break,\ 5 :,\ 6 continue,\ 7 . /dev/null, 8 eval, 9 exec, 10 export -p, 11 readonly -p, 12 set, 13 shift 0, 14 times, 15 trap, 16 unset foo" 17 18UTILS="alias,\ 19 bg,\ 20 bind,\ 21 cd,\ 22 command echo,\ 23 echo,\ 24 false,\ 25 fc -l,\ 26 fg,\ 27 getopts a var,\ 28 hash,\ 29 jobs,\ 30 printf a,\ 31 pwd,\ 32 read var < /dev/null,\ 33 test,\ 34 true,\ 35 type ls,\ 36 ulimit,\ 37 umask,\ 38 unalias -a,\ 39 wait" 40 41set -e 42 43# For special built-ins variable assignments affect the shell environment. 44set -- ${SPECIAL} 45for cmd in "$@" 46do 47 ${SH} -c "VAR=1; VAR=0 ${cmd}; exit \${VAR}" >/dev/null 2>&1 48done 49 50# For other built-ins and utilities they do not. 51set -- ${UTILS} 52for cmd in "$@" 53do 54 ${SH} -c "VAR=0; VAR=1 ${cmd}; exit \${VAR}" >/dev/null 2>&1 55done 56