From cce88bdb0c13e7533f85e4fc9e9c2530994eb0f0 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Thu, 11 Jun 2020 22:31:44 +0200 Subject: users/24892: fix local declaration with recursive-files style and complete it for zstyle --- ChangeLog | 6 ++++++ Completion/Unix/Type/_files | 2 +- Completion/Zsh/Command/_zstyle | 10 ++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e02cb123..1cc3a831d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2020-06-11 Oliver Kiddle + + * users/24892: Completion/Unix/Type/_files, + Completion/Zsh/Command/_zstyle: fix local declaration with + recursive-files style and complete it for zstyle + 2020-06-10 Daniel Shahaf * unposted: Doc/Zsh/mod_zutil.yo: zstyle docs: Fix typo. diff --git a/Completion/Unix/Type/_files b/Completion/Unix/Type/_files index 6adaa8154..4ddec1e12 100644 --- a/Completion/Unix/Type/_files +++ b/Completion/Unix/Type/_files @@ -1,6 +1,7 @@ #compdef -redirect-,-default-,-default- local -a match mbegin mend +local -a subtree local ret=1 # Look for glob qualifiers. This is duplicated from _path_files because @@ -110,7 +111,6 @@ for def in "$pats[@]"; do if _path_files -g "$pat" "$opts[@]" "$expl[@]"; then ret=0 elif [[ $PREFIX$SUFFIX != */* ]] && zstyle -a ":completion:${curcontext}:$tag" recursive-files rfiles; then - local subtree for rfile in $rfiles; do if [[ $PWD/ = ${~rfile} ]]; then if [[ -z $subtree ]]; then diff --git a/Completion/Zsh/Command/_zstyle b/Completion/Zsh/Command/_zstyle index 07b60605f..e9a5d800c 100644 --- a/Completion/Zsh/Command/_zstyle +++ b/Completion/Zsh/Command/_zstyle @@ -100,6 +100,7 @@ styles=( preserve-prefix c:preserve-prefix range c: recent-dirs-insert c:recent-dirs-insert + recursive-files c: regular c:bool rehash c:bool remote-access c:bool @@ -409,14 +410,15 @@ while (( $#state )); do ;; (function) - _wanted control-function expl 'control function' \ + _wanted control-functions expl 'control function' \ compadd predict-on all-matches ;; (functions) - _wanted comp-widget expl 'completion widget' \ - compadd $suf - all-matches complete-debug complete-tag \ - correct-word expand-word expand-alias-word history-words + _wanted comp-widgets expl 'completion widget' \ + compadd $suf -M 'r:|-=* r:|=*' - all-matches complete-debug complete-tag \ + correct-word expand-word expand-alias-word history-words \ + ${${${(M)${(f)"$(_call_program comp-widgets zle -l)"}:#*-C*}:#_*}/ -C*} ;; (user-host-port) -- cgit 1.4.1