From 7d84cde31330023b264a415ffa02686ee0338b4f Mon Sep 17 00:00:00 2001 From: Matthew Martin Date: Thu, 4 Apr 2019 18:45:19 -0500 Subject: 44201: _command_name: Check for external forcing precommand --- ChangeLog | 7 +++++++ Completion/Base/Core/_main_complete | 6 ++++++ Completion/Base/Utility/_pick_variant | 6 ------ Completion/Linux/Command/_setsid | 1 - Completion/Zsh/Command/_command | 1 - Completion/Zsh/Type/_command_names | 2 ++ 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index a0bceaca5..f960e85ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2019-04-04 Matthew Martin + * 44201: Completion/Base/Core/_main_complete, + Completion/Base/Utility/_pick_variant, + Completion/Linux/Command/_setsid, + Completion/Zsh/Command/_command, + Completion/Zsh/Type/_command_names: Check for external forcing + precommand. + * 44200 (tweaked): Completion/Base/Core/_normal, Completion/Linux/Command/_setsid, Completion/Zsh/Command/_builtin, diff --git a/Completion/Base/Core/_main_complete b/Completion/Base/Core/_main_complete index aa2486236..6b2cf2bcf 100644 --- a/Completion/Base/Core/_main_complete +++ b/Completion/Base/Core/_main_complete @@ -45,6 +45,12 @@ unset _comp_priv_prefix # _precommand sets this to indicate we are following a precommand modifier local -a precommands +# Precommands which allow their wrapped command to be a builtin. +# All of these are necessarily builtins or reserved words themselves, +# but not all builtin precommands are listed here: +# for one, the 'command' builtin is excluded. +local -ar builtin_precommands=(- builtin eval exec nocorrect noglob time) + typeset -U _lastdescr _comp_ignore _comp_colors { diff --git a/Completion/Base/Utility/_pick_variant b/Completion/Base/Utility/_pick_variant index 872e8f583..b75233038 100644 --- a/Completion/Base/Utility/_pick_variant +++ b/Completion/Base/Utility/_pick_variant @@ -4,12 +4,6 @@ local output cmd pat pre local -a var local -A opts -# Precommands which allow their wrapped command to be a builtin. -# All of these are necessarily builtins or reserved words themselves, -# but not all builtin precommands are listed here: -# for one, the 'command' builtin is excluded. -local -ar builtin_precommands=(- builtin eval exec nocorrect noglob time) - (( $+_cmd_variant )) || typeset -gA _cmd_variant zparseopts -D -A opts b: c: r: diff --git a/Completion/Linux/Command/_setsid b/Completion/Linux/Command/_setsid index f3aef500a..d248925aa 100644 --- a/Completion/Linux/Command/_setsid +++ b/Completion/Linux/Command/_setsid @@ -6,5 +6,4 @@ _arguments -s -S -A '-*' : \ '(-c --ctty)'{-c,--ctty}'[set controlling terminal to current one]' \ '(-f --fork)'{-f,--fork}'[always fork]' \ '(-w --wait)'{-w,--wait}'[wait for program to exit, and use same return code]' \ - '1: :_path_commands' \ '*:: : _normal -p $service' diff --git a/Completion/Zsh/Command/_command b/Completion/Zsh/Command/_command index 7a59a2386..503f860a2 100644 --- a/Completion/Zsh/Command/_command +++ b/Completion/Zsh/Command/_command @@ -4,5 +4,4 @@ _arguments \ '-v[indicate result of command search]:*:command:_path_commands' \ '-V[show result of command search in verbose form]:*:command:_path_commands' \ '(-)-p[use default PATH to find command]' \ - ':command:_path_commands' \ '*:: : _normal -p $service' diff --git a/Completion/Zsh/Type/_command_names b/Completion/Zsh/Type/_command_names index f8188774d..cd630b7a4 100644 --- a/Completion/Zsh/Type/_command_names +++ b/Completion/Zsh/Type/_command_names @@ -21,6 +21,8 @@ defs=( if [[ "$1" = -e ]]; then shift +elif (( ${#precommands:|builtin_precommands} )); then + # precommand excludes internal options below else [[ "$1" = - ]] && shift -- cgit 1.4.1