#compdef kill
local tags list expl
if compset -P 1 -; then
_tags -i signal || return 1
_description expl signal
compadd "$expl[@]" $signals[1,-3]
else
local ret=1
_tags job process
while _tags; do
[[ "$tags" = *:job:* ]] && _jobs && ret=0
[[ "$tags" = *:process:* ]] && _pids && ret=0
(( ret )) || break
done
return ret
fi