about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorMatthew Martin <phy1729@gmail.com>2019-04-04 18:45:19 -0500
committerMatthew Martin <phy1729@gmail.com>2019-04-04 18:45:19 -0500
commit7d84cde31330023b264a415ffa02686ee0338b4f (patch)
tree2bd35212c238a10562e195fe8c0dc74c6244215f /Completion
parent5facfd32805831230f9b42b7ec9765e858b553a8 (diff)
downloadzsh-7d84cde31330023b264a415ffa02686ee0338b4f.tar.gz
zsh-7d84cde31330023b264a415ffa02686ee0338b4f.tar.xz
zsh-7d84cde31330023b264a415ffa02686ee0338b4f.zip
44201: _command_name: Check for external forcing precommand
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Base/Core/_main_complete6
-rw-r--r--Completion/Base/Utility/_pick_variant6
-rw-r--r--Completion/Linux/Command/_setsid1
-rw-r--r--Completion/Zsh/Command/_command1
-rw-r--r--Completion/Zsh/Type/_command_names2
5 files changed, 8 insertions, 8 deletions
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