Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Re: New style completion bug when ctrl-C pressed



On Apr 26,  4:11pm, Bart Schaefer wrote:
}
} Try this.

I'm not doing very well with my posted patches the last couple of days.

} +  trap '[[ -n "$redef" ]] && unfunction compadd' EXIT INT

The trap doesn't execute in the local scope, so [[ -n $redef ]] always
fails.  Try this instead:

diff -rux CVS zsh-forge/current/Completion/Base/Completer/_approximate zsh-4.0/Completion/Base/Completer/_approximate
--- zsh-forge/current/Completion/Base/Completer/_approximate	Mon Apr  2 04:05:44 2001
+++ zsh-4.0/Completion/Base/Completer/_approximate	Thu Apr 26 10:31:02 2001
@@ -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 @@
 # 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 @@
     # fi
     builtin compadd "$_correct_expl[@]" "$@"
   }
+  trap 'unfunction compadd' EXIT INT
 fi
 
 _comp_correct=1
@@ -92,7 +92,6 @@
       [[ "$compstate[list]" != list* ]] &&
           compstate[list]="$compstate[list] force"
     fi
-    [[ -n "$redef" ]] && unfunction compadd
     compstate[pattern_match]="$opm"
 
     return 0
@@ -102,7 +101,6 @@
   (( _comp_correct++ ))
 done
 
-[[ -n "$redef" ]] && unfunction compadd
 compstate[pattern_match]="$opm"
 
 return 1

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



Messages sorted by: Reverse Date, Date, Thread, Author