113de33a5SJulio Merino# $FreeBSD$ 213de33a5SJulio MerinoIFS=, 313de33a5SJulio Merino 413de33a5SJulio MerinoSPECIAL="break,\ 513de33a5SJulio Merino :,\ 613de33a5SJulio Merino continue,\ 713de33a5SJulio Merino . /dev/null, 813de33a5SJulio Merino eval, 913de33a5SJulio Merino exec, 1013de33a5SJulio Merino export -p, 1113de33a5SJulio Merino readonly -p, 1213de33a5SJulio Merino set, 1313de33a5SJulio Merino shift 0, 1413de33a5SJulio Merino times, 1513de33a5SJulio Merino trap, 1613de33a5SJulio Merino unset foo" 1713de33a5SJulio Merino 1813de33a5SJulio MerinoUTILS="alias,\ 1913de33a5SJulio Merino bg,\ 2013de33a5SJulio Merino bind,\ 2113de33a5SJulio Merino cd,\ 2213de33a5SJulio Merino command echo,\ 2313de33a5SJulio Merino echo,\ 2413de33a5SJulio Merino false,\ 2513de33a5SJulio Merino fc -l,\ 2613de33a5SJulio Merino fg,\ 2713de33a5SJulio Merino getopts a var,\ 2813de33a5SJulio Merino hash,\ 2913de33a5SJulio Merino jobs,\ 3013de33a5SJulio Merino printf a,\ 3113de33a5SJulio Merino pwd,\ 3213de33a5SJulio Merino read var < /dev/null,\ 3313de33a5SJulio Merino test,\ 3413de33a5SJulio Merino true,\ 3513de33a5SJulio Merino type ls,\ 3613de33a5SJulio Merino ulimit,\ 3713de33a5SJulio Merino umask,\ 3813de33a5SJulio Merino unalias -a,\ 3913de33a5SJulio Merino wait" 4013de33a5SJulio Merino 4113de33a5SJulio Merinoset -e 4213de33a5SJulio Merino 4313de33a5SJulio Merino# For special built-ins variable assignments affect the shell environment. 4413de33a5SJulio Merinoset -- ${SPECIAL} 4513de33a5SJulio Merinofor cmd in "$@" 4613de33a5SJulio Merinodo 4713de33a5SJulio Merino ${SH} -c "VAR=1; VAR=0 ${cmd}; exit \${VAR}" >/dev/null 2>&1 4813de33a5SJulio Merinodone 4913de33a5SJulio Merino 50*6b35d82cSEitan Adler# For other built-ins and utilities they do not. 5113de33a5SJulio Merinoset -- ${UTILS} 5213de33a5SJulio Merinofor cmd in "$@" 5313de33a5SJulio Merinodo 5413de33a5SJulio Merino ${SH} -c "VAR=0; VAR=1 ${cmd}; exit \${VAR}" >/dev/null 2>&1 5513de33a5SJulio Merinodone 56