diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-15 12:01:46 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-15 12:01:46 +0000 |
commit | 35b2633ad941966f5fca07b625a594a5b68c0fdb (patch) | |
tree | b54740d014e594ba5d81931cdcdb3387bcf9dfca /Completion/Core/_approximate | |
parent | bb98460a01ce1f6c1e71f7e401f782c81b71486b (diff) | |
download | zsh-35b2633ad941966f5fca07b625a594a5b68c0fdb.tar.gz zsh-35b2633ad941966f5fca07b625a594a5b68c0fdb.tar.xz zsh-35b2633ad941966f5fca07b625a594a5b68c0fdb.zip |
manual/8639
Diffstat (limited to 'Completion/Core/_approximate')
-rw-r--r-- | Completion/Core/_approximate | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/Completion/Core/_approximate b/Completion/Core/_approximate index 235e324f7..910742fee 100644 --- a/Completion/Core/_approximate +++ b/Completion/Core/_approximate @@ -7,6 +7,7 @@ local _comp_correct _correct_prompt comax local cfgacc cfgorig cfgps cfgins +local curcontext="$curcontext" oldcontext # Only if all global matchers have been tried. @@ -16,20 +17,16 @@ local cfgacc cfgorig cfgps cfgins [[ "${#:-$PREFIX$SUFFIX}" -le 1 ]] && return 1 -# Get the configuration values, using either the prefix `correct' or -# `approximate'. +# Probably set initial context. -if [[ "$compstate[pattern_match]" = (|\**) ]]; then - cfgacc="${compconfig[approximate_accept]:-$compconfig[correct_accept]}" - cfgorig="${compconfig[approximate_original]:-$compconfig[correct_original]}" - cfgps="${compconfig[approximate_prompt]:-$compconfig[correct_prompt]}" - cfgins="${compconfig[approximate_insert]:-$compconfig[correct_insert]}" -else - cfgacc="$compconfig[correct_accept]" - cfgorig="$compconfig[correct_original]" - cfgps="$compconfig[correct_prompt]" - cfgins="$compconfig[correct_insert]" -fi +[[ -z "$curcontext" ]] && curcontext=':approximate' + +oldcontext="$curcontext" + +_style -s '' accept cfgacc +_style -s '' original cfgorig +_style -s '' prompt cfgps +_style -s '' insert cfgins # Get the number of errors to accept. @@ -86,16 +83,18 @@ _correct_prompt="${cfgps//\\%e/1}" [[ -z "$compstate[pattern_match]" ]] && compstate[pattern_match]='*' while [[ _comp_correct -le comax ]]; do + curcontext="${oldcontext}:$_comp_correct" + if _complete; then if [[ "$cfgins" = unambig* && "${#compstate[unambiguous]}" -ge "${#:-$PREFIX$SUFFIX}" ]]; then compstate[pattern_insert]=unambiguous elif [[ compstate[nmatches] -gt 1 || "$cfgorig" = *always* ]]; then - local expl + local expl format if [[ "$cfgorig" = *show* ]]; then - if [[ -n "$compconfig[description_format]" ]]; then - expl=(-X "${compconfig[description_format]//\\%d/original}") + if _style -s descriptions format format; then + expl=(-X "${format//\\%d/original}") else expl=() fi |