#compdef -command-line-

local _comp_command1 _comp_command2 _comp_command skip

if [[ "$1" = -s ]]; then
  skip=(-s)
else
  skip=()
  _compskip=''
fi

if [[ -o BANG_HIST &&
     ( ( $words[CURRENT] = \!*: && -z $compstate[quote] ) ||
       ( $words[CURRENT] = \"\!*: && $compstate[all_quotes] = \" ) ) ]]; then
  PREFIX=${PREFIX//\\!/!}
  compset -P '*:'
  _history_modifiers h
  return
fi


if [[ CURRENT -eq 1 ]]; then
  curcontext="${curcontext%:*:*}:-command-:"

  comp="$_comps[-command-]"
  [[ -n "$comp" ]] && eval "$comp" && ret=0

  return ret
fi

_set_command

_dispatch "$skip[@]" "$_comp_command" \
          "$_comp_command1" "$_comp_command2" -default-
