about summary refs log tree commit diff
path: root/Completion/Builtins/_cd
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Builtins/_cd')
-rw-r--r--Completion/Builtins/_cd7
1 files changed, 5 insertions, 2 deletions
diff --git a/Completion/Builtins/_cd b/Completion/Builtins/_cd
index b407b5a85..26846fde2 100644
--- a/Completion/Builtins/_cd
+++ b/Completion/Builtins/_cd
@@ -22,10 +22,13 @@ if [[ CURRENT -eq 3 ]]; then
   rep=(${~PWD/$words[2]/*}~$PWD(-/N))
   # Now remove all the common parts of $PWD and the completions from this
   rep=(${${rep#${PWD%%$words[2]*}}%${PWD#*$words[2]}})
-  _description expl replacement
-  (( ! $#rep )) || compadd "$expl[@]" $rep
+  if (( $#rep )) && _tags replacement strings; then
+    _description expl replacement
+    compadd "$expl[@]" $rep
+  fi
 elif _popd || [[ $PREFIX != (\~|/|./|../)* && $#cdpath -ne 0 ]]; then
   local tdir tdir2
+
   # With cdablevars, we can convert foo/bar/... to ~foo/bar/... if
   # there is no directory foo.  In that case we could also complete
   # variable names, but it hardly seems worth it.