#autoload

# This sets the parameters _comp_command1 and _comp_command2 in the
# calling function.

local command

command="$words[1]"

[[ -z "$command" ]] && return

if (( $+builtins[$command] + $+functions[$command] )); then
  _comp_command1="$command"
  curcontext="${curcontext%:*:*}:${_comp_command1}:"
elif [[ "$command[1]" = '=' ]]; then
  eval _comp_command2\=$command
  _comp_command1="$command[2,-1]"
  curcontext="${curcontext%:*:*}:${_comp_command2}:"
elif [[ "$command" = ..#/* ]]; then
  _comp_command1="${PWD}/$command"
  _comp_command2="${command:t}"
  curcontext="${curcontext%:*:*}:${_comp_command2}:"
elif [[ "$command" = */* ]]; then
  _comp_command1="$command"
  _comp_command2="${command:t}"
  curcontext="${curcontext%:*:*}:${_comp_command2}:"
else
  _comp_command1="$command"
  _comp_command2="$commands[$command]"
  curcontext="${curcontext%:*:*}:${_comp_command1}:"
fi
