about summary refs log tree commit diff
path: root/Src/Zle/compctl.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-02-16 10:57:11 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-02-16 10:57:11 +0000
commit15996aeeecedf3b94447213ea4c473650cf8afb4 (patch)
tree20970d3968f18652f48047b42c4bc068fb4af35b /Src/Zle/compctl.c
parentd5980018d5423274e4beb771974f4c935b309241 (diff)
downloadzsh-15996aeeecedf3b94447213ea4c473650cf8afb4.tar.gz
zsh-15996aeeecedf3b94447213ea4c473650cf8afb4.tar.xz
zsh-15996aeeecedf3b94447213ea4c473650cf8afb4.zip
zsh-workers/9759
Diffstat (limited to 'Src/Zle/compctl.c')
-rw-r--r--Src/Zle/compctl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c
index 2f2e298e6..f3673df52 100644
--- a/Src/Zle/compctl.c
+++ b/Src/Zle/compctl.c
@@ -1892,6 +1892,13 @@ ccmakehookfn(Hookdef dummy, struct ccmakedat *dat)
     return 0;
 }
 
+static int
+cccleanuphookfn(Hookdef dummy, void *dat)
+{
+    ccused = ccstack = NULL;
+    return 0;
+}
+
 /* This adds a match to the list of matches.  The string to add is given   *
  * in s, the type of match is given in the global variable addwhat and     *
  * the parameter t (if not NULL) is a pointer to a hash node node which    *
@@ -3906,6 +3913,7 @@ int
 boot_(Module m)
 {
     addhookfunc("compctl_make", (Hookfn) ccmakehookfn);
+    addhookfunc("compctl_cleanup", (Hookfn) cccleanuphookfn);
     return (addbuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab)) != 1);
 }
 
@@ -3914,6 +3922,7 @@ int
 cleanup_(Module m)
 {
     deletehookfunc("compctl_make", (Hookfn) ccmakehookfn);
+    deletehookfunc("compctl_cleanup", (Hookfn) cccleanuphookfn);
     deletebuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab));
     return 0;
 }