From 3ac50886a00231cf99c421f4e36bbc356c91cea2 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Mon, 7 Jul 2003 09:48:45 +0000 Subject: 18822: fix accept-exact style not not bail out when it shouldn't and add a setting to continue on and do normal completion --- Completion/Base/Completer/_expand | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'Completion/Base') diff --git a/Completion/Base/Completer/_expand b/Completion/Base/Completer/_expand index 0e7b5820c..a71c7d34b 100644 --- a/Completion/Base/Completer/_expand +++ b/Completion/Base/Completer/_expand @@ -12,6 +12,7 @@ setopt localoptions nonomatch [[ _matcher_num -gt 1 ]] && return 1 local exp word sort expr expl subd suf=" " force opt asp tmp opre pre epre +local continue=0 (( $# )) && while getopts gsco opt; do @@ -37,13 +38,17 @@ zstyle -T ":completion:${curcontext}:" suffix && "${(e)word}" != *[][^*?\(\)\<\>\{\}\|]* ]] && return 1 -zstyle -t ":completion:${curcontext}:" accept-exact || - [[ $? -eq 2 && ! -o recexact ]] || +zstyle -s ":completion:${curcontext}:" accept-exact tmp || + [[ ! -o recexact ]] || tmp=1 + +if [[ "$tmp" != (yes|true|on|1) ]]; then { [[ "$word" = \~(|[-+]) || - ( "$word" = \~[-+][1-9]## && $word[3,-1] -le $#dirstack ) || - ( "$word" = \~* && ${#userdirs[(I)${word[2,-1]}*]}+${#nameddirs[(I)${word[2,-1]}*]} -ne 1 ) || + ( "$word" = \~[-+][1-9]## && $word[3,-1] -le $#dirstack ) ]] && return 1 } + { [[ ( "$word" = \~* && ${#userdirs[(I)${word[2,-1]}*]}+${#nameddirs[(I)${word[2,-1]}*]} -gt 1 ) || ( "$word" = *\$[a-zA-Z0-9_]## && - ${#parameters[(I)${word##*\$}*]} -ne 1 ) ]] && return 1 } + ${#parameters[(I)${word##*\$}*]} -ne 1 ) ]] && continue=1 } + [[ continue -eq 1 && "$tmp" != continue ]] && return 1 +fi # In exp we will collect the expansions. @@ -217,4 +222,4 @@ else compstate[insert]=menu fi -return 0 +return continue -- cgit 1.4.1