From a509b259f889404b3c821a19243ebde19d582aaf Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Fri, 27 Apr 2001 03:20:59 +0000 Subject: Use trap for unfunction compadd in _approximate. --- Completion/Base/Completer/_approximate | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'Completion/Base') diff --git a/Completion/Base/Completer/_approximate b/Completion/Base/Completer/_approximate index 0b64db593..6e094cd45 100644 --- a/Completion/Base/Completer/_approximate +++ b/Completion/Base/Completer/_approximate @@ -10,7 +10,7 @@ [[ _matcher_num -gt 1 || "${#:-$PREFIX$SUFFIX}" -le 1 ]] && return 1 -local _comp_correct _correct_expl comax cfgacc redef match +local _comp_correct _correct_expl comax cfgacc match local oldcontext="${curcontext}" opm="$compstate[pattern_match]" if [[ "$1" = -a* ]]; then @@ -48,7 +48,6 @@ _tags corrections original # ignored prefix). if (( ! $+functions[compadd] )); then - redef=yes compadd() { [[ ${argv[(I)-[a-zA-Z]#U[a-zA-Z]#]} -eq 0 && "${#:-$PREFIX$SUFFIX}" -le _comp_correct ]] && return @@ -61,6 +60,7 @@ if (( ! $+functions[compadd] )); then # fi builtin compadd "$_correct_expl[@]" "$@" } + trap 'unfunction compadd' EXIT INT fi _comp_correct=1 @@ -92,7 +92,6 @@ while [[ _comp_correct -le comax ]]; do [[ "$compstate[list]" != list* ]] && compstate[list]="$compstate[list] force" fi - [[ -n "$redef" ]] && unfunction compadd compstate[pattern_match]="$opm" return 0 @@ -102,7 +101,6 @@ while [[ _comp_correct -le comax ]]; do (( _comp_correct++ )) done -[[ -n "$redef" ]] && unfunction compadd compstate[pattern_match]="$opm" return 1 -- cgit 1.4.1