diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-24 14:44:28 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-24 14:44:28 +0000 |
commit | 6785dcb5c920b6be812b4d1a70ce53ed47ff2f30 (patch) | |
tree | 332ee00c91dbd07c7982465fb61dd6dbebe95cc5 /Completion/Core | |
parent | 01ffe47e012deb204dc74a3fff794f8b4a3ec795 (diff) | |
download | zsh-6785dcb5c920b6be812b4d1a70ce53ed47ff2f30.tar.gz zsh-6785dcb5c920b6be812b4d1a70ce53ed47ff2f30.tar.xz zsh-6785dcb5c920b6be812b4d1a70ce53ed47ff2f30.zip |
zsh-workers/9865
Diffstat (limited to 'Completion/Core')
-rw-r--r-- | Completion/Core/_main_complete | 15 | ||||
-rw-r--r-- | Completion/Core/_setup | 2 |
2 files changed, 12 insertions, 5 deletions
diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete index 739ce2898..a5acb36f7 100644 --- a/Completion/Core/_main_complete +++ b/Completion/Core/_main_complete @@ -19,7 +19,7 @@ setopt localoptions nullglob rcexpandparam extendedglob unsetopt markdirs globsubst shwordsplit nounset ksharrays -local comp post ret=1 tmp _compskip format _comp_ignore \ +local ctxt post ret=1 tmp _compskip format _comp_ignore \ _completers _completer _completer_num \ _matchers _matcher _matcher_num \ context state line opt_args val_args curcontext="$curcontext" \ @@ -66,7 +66,14 @@ _completers=( "$@" ) _completer_num=1 for _completer; do - zstyle -a ":completion:${curcontext/::/:${_completer[2,-1]}-${(M)#_completers[1,_completer_num]:#$_completer}:}:" matcher-list _matchers || + ctxt=":completion:${curcontext/::/:${_completer[2,-1]}-${(M)#_completers[1,_completer_num]:#$_completer}:}:" + + if zstyle -t "$ctxt" prefer-ignored && (( $compstate[alternate_nmatches] )); then + ret=0 + break; + fi + + zstyle -a "$ctxt" matcher-list _matchers || _matchers=( '' ) _matcher_num=1 @@ -82,7 +89,6 @@ done if zstyle -s ":completion:${curcontext}:" single-ignored tmp && [[ $compstate[old_list] != shown && - $compstate[nmatches] = 0 && $compstate[alternate_nmatches] = 1 ]]; then case "$tmp" in show) compstate[insert]='' compstate[list]='list force' tmp='' ;; @@ -99,7 +105,8 @@ fi if [[ -n "$tmp" || $compstate[old_list] = keep || $compstate[nmatches]+$compstate[alternate_nmatches] -gt 1 ]]; then - [[ _last_nmatches -ge 0 && _last_nmatches -ne compstate[nmatches] ]] && + [[ _last_nmatches -ge 0 && + _last_nmatches -ne $compstate[nmatches]+$compstate[alternate_nmatches ]] && _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" ) if [[ "$compstate[insert]" = "$_saved_insert" ]]; then diff --git a/Completion/Core/_setup b/Completion/Core/_setup index 408b5abfe..5d63b97ce 100644 --- a/Completion/Core/_setup +++ b/Completion/Core/_setup @@ -62,7 +62,7 @@ fi _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" ) if zstyle -a ":completion:${curcontext}:$1" menu val; then - _last_nmatches="$nm" + _last_nmatches=$(( $nm + $compstate[alternate_nmatches] )) _last_menu_style=( "$val[@]" ) else _last_nmatches=-1 |