mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
To avoid side effects, reposition the _arguments call in _sh for the zsh special case. Document the side effects so avoided, and clean up the _arguments documentation a bit along the way.
30 lines
547 B
Text
30 lines
547 B
Text
#compdef sh ksh bash zsh csh tcsh rc
|
|
|
|
if [[ $service == zsh ]]; then
|
|
# try a bit harder
|
|
if [[ ${words[CURRENT-1]} == -o ]]; then
|
|
_options
|
|
# no other possibilities
|
|
return
|
|
fi
|
|
fi
|
|
|
|
if (( CURRENT == ${words[(i)-c]} + 1 )); then
|
|
compset -q
|
|
_normal
|
|
else
|
|
local n=${words[(b:2:i)[^-]*]}
|
|
if (( n <= CURRENT )); then
|
|
compset -n $n
|
|
_alternative \
|
|
'files:file:_files' \
|
|
'commands:command:_normal' && return 0
|
|
fi
|
|
_default
|
|
fi
|
|
|
|
local ret=$?
|
|
|
|
[[ $service == zsh ]] && _arguments -S -s -- '*:' && ret=0
|
|
|
|
return ret
|