#compdef kill

local curcontext="$curcontext" line state ret=1

_arguments -C \
  '(-s -l 1)-n[specify signal number]:signal number' \
  '(-n -l 1)-s[specify signal name]:signal:_signals -s' \
  '(-n -s)-l[list signal names or numbers of specified signals]:*:signal:_signals' \
  '(-n -s -l)1::signal:_signals -p -s' \
  '*:processes:->processes' && ret=0
  
if [[ -n "$state" ]]; then
  case "${words[$CURRENT]}" in
    \#*)
	_alternative \
	  'jobs:: _jobs -t' \
	  'processes:: _pids -A' && ret=0
	;;
    *)
	_alternative \
	  'jobs:: _jobs -t' \
	  'processes:: _pids' && ret=0
	;;
  esac
fi

return ret
