From f56ba813bb92b1d61be91cb39df620b37a5a0588 Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Mon, 4 Mar 2002 08:53:41 +0000 Subject: allow different sets of completion definitions selected with option -T to compdef; use this for parameter values and redirections (16755) --- Completion/Base/Utility/_set_command | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Completion/Base/Utility/_set_command (limited to 'Completion/Base/Utility/_set_command') diff --git a/Completion/Base/Utility/_set_command b/Completion/Base/Utility/_set_command new file mode 100644 index 000000000..daf532686 --- /dev/null +++ b/Completion/Base/Utility/_set_command @@ -0,0 +1,31 @@ +#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 -- cgit 1.4.1