summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/Unix/Type/_path_files3
1 files changed, 2 insertions, 1 deletions
diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files
index 041a73ba6..9fa6ae9fc 100644
--- a/Completion/Unix/Type/_path_files
+++ b/Completion/Unix/Type/_path_files
@@ -380,6 +380,7 @@ for prepath in "$prepaths[@]"; do
     # to ask why).
     tmp1=${match[1]}
     tpre=${match[2]}
+    tmp2=$tmp1
     tmp1=${tmp1//(#b)\\(?)/$match[1]}
     tpre=${tpre//(#b)\\([^\\\]\[\^\~\(\)\#\*\?])/$match[1]}
     # Theory: donepath needs the quoting of special characters
@@ -388,7 +389,7 @@ for prepath in "$prepaths[@]"; do
     # doing something a bit different.
     tmp3=${donepath//(#b)\\(?)/$match[1]}
     while true; do
-      if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp1 ]]; then
+      if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp2 ]]; then
 	tmp3=$tmp3$tmp1/
 	# Now put donepath back the way it should be.  (I think.)
 	donepath=${tmp3//(#b)([\\\]\[\^\~\(\)\#\*\?])/\\$match[1]}