summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--Completion/Unix/Type/_path_files2
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 45faa0016..64971a413 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,13 @@
* unposted: Functions/Zle/move-line-in-buffer: clean
the funny characters out of move-line-in-buffer.
+2011-06-04 Barton E. Schaefer <schaefer@zsh.org>
+
+ * 29444: Completion/Unix/Type/_path_files: when called with a
+ pattern to match directories, as from _files with list-dirs-first,
+ do not descend into subdirectories looking for fake files unless
+ some fake files have been defined.
+
2011-06-04 Peter Stephenson <p.w.stephenson@ntlworld.com>
* Completion/Zsh/Context/_brace_parameter, Src/Zle/compcore.c
@@ -14963,5 +14970,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5363 $
+* $Revision: 1.5364 $
*****************************************************
diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files
index 858fe3f74..a8d03efa9 100644
--- a/Completion/Unix/Type/_path_files
+++ b/Completion/Unix/Type/_path_files
@@ -438,7 +438,7 @@ for prepath in "$prepaths[@]"; do
tmp2=( "$tmp1[@]" )
- if [[ "$tpre$tsuf" = */* ]]; then
+ if [[ "$tpre$tsuf" = (#b)*/(*) && -n "$fake${match[1]}" ]]; then
compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake
elif [[ "$sopt" = *[/f]* ]]; then
compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake "$pats[@]"