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