#compdef -command-line-

local _comp_command1 _comp_command2 _comp_command skip

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

# Check for a history reference to complete modifiers.
# $PREFIX has a quoted form of the !, so we can't test that
# (it might the start of a real argument), but words has the
# raw McCoy.
if [[ -o BANG_HIST &&
     ( ( $words[CURRENT] = \!*: && -z $compstate[quote] ) ||
       ( $words[CURRENT] = \"\!*: && $compstate[all_quotes] = \" ) ) ]]; then
  # This looks like a real history expansion; in that case
  # we'd better put the !'s back the way pfalstad intended.
  PREFIX=${PREFIX//\\!/!}
  compset -P '*:'
  _history_modifiers h
  return
fi

# Completing in command position?

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-
