diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | Completion/Unix/Type/_path_files | 2 |
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[@]" |