about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Zsh/Command/_cd2
-rw-r--r--Completion/Zsh/Context/_autocd5
-rw-r--r--Completion/Zsh/Type/_command_names2
4 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1a5c72691..4d9847062 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2001-06-21  Bart Schaefer  <schaefer@zsh.org>
 
+	* 15020: Completion/Zsh/Command/_cd, Completion/Zsh/Context/_autocd,
+	Completion/Zsh/Type/_command_names: When AUTO_CD is set, complete
+	directory names (including along cdpath) as well as commands when
+	in command position.
+
 	* 15018: Completion/compinit: Fix exit status of compdef.
 
 2001-06-20  Bart Schaefer  <schaefer@zsh.org>
diff --git a/Completion/Zsh/Command/_cd b/Completion/Zsh/Command/_cd
index 2fd2af9be..71fa1a8ad 100644
--- a/Completion/Zsh/Command/_cd
+++ b/Completion/Zsh/Command/_cd
@@ -24,7 +24,7 @@ if [[ CURRENT -eq 3 ]]; then
   rep=(${${rep#${PWD%%$words[2]*}}%${PWD#*$words[2]}})
   (( $#rep )) && _wanted -C replacement strings expl replacement compadd -a rep
 else
-  _directory_stack && ret=0
+  [[ CURRENT -gt 1 ]] && _directory_stack && ret=0
 
   if [[ $PREFIX != (\~|/|./|../)* && $#cdpath -ne 0 ]]; then
     local tdir tdir2
diff --git a/Completion/Zsh/Context/_autocd b/Completion/Zsh/Context/_autocd
new file mode 100644
index 000000000..58ba5b17b
--- /dev/null
+++ b/Completion/Zsh/Context/_autocd
@@ -0,0 +1,5 @@
+#compdef -command-
+
+_command_names
+local ret=$?
+[[ -o autocd ]] && _cd || return ret
diff --git a/Completion/Zsh/Type/_command_names b/Completion/Zsh/Type/_command_names
index cf4088295..006006348 100644
--- a/Completion/Zsh/Type/_command_names
+++ b/Completion/Zsh/Type/_command_names
@@ -1,4 +1,4 @@
-#compdef -command-
+#autoload
 
 # The option `-e' if given as the first argument says that we should
 # complete only external commands and executable files. This and a