/usr/share/zsh/4.3.11/functions
Edit: /usr/share/zsh/4.3.11/functions/_su (1944B)
#compdef su
local -A opt_args
local -a args state context
local shell=${words[(i)(-s|--shell=*)]} first='1:user name:_users'
local usr=root line
if _pick_variant gnu="Free Software Foundation" unix --version; then
args=(
'(--command)-c[pass command to shell]:command string:->command'
'(-c)--command=-[pass command to shell]:command string:->command'
'-f[pass -f to shell (csh)]'
'(--login)-l[use a login shell]'
'(-l)--login[use a login shell]'
'(-p --preserve-environment)-m[do not reset environment]'
'(-m --preserve-environment)-p[do not reset environment]'
'(-m -p)--preserve-environment[do not reset environment]'
'(--shell)-s[run the specified shell]:shell:->shell'
'(-s)--shell=-[run the specified shell]:shell:->shell'
)
else
args=(
'-c[pass command to shell]:command string:->command'
'-l[use a login shell]'
'-s[run the specified shell]:shell:->shell'
)
fi
if [[ $#words -ge 2 && $words[2] != -* && CURRENT -ne 2 ]]; then
usr=$words[2]
first=
fi
[[ $words[shell] == -s ]] && ((shell++))
if [[ CURRENT -ne shell && -n ${words[shell]} ]]; then
shell=${words[shell]#*=}
else
shell="${${(M@)${(@f)$(rest" && return
case $state in
(command)
compset -q
_normal
return
;;
(shell)
compadd ${(f)^"$(