diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2000-11-11 19:50:27 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2000-11-11 19:50:27 +0000 |
commit | c292a3ae50bd0605b015f80266418e391c3c10fe (patch) | |
tree | 8f2baf5a9e1cb7a9615190025d9825ed9824f952 /Src/Zle/zle_thingy.c | |
parent | 89d480f57d59a794d8c2e04fc5270bed13b7a28a (diff) | |
download | zsh-c292a3ae50bd0605b015f80266418e391c3c10fe.tar.gz zsh-c292a3ae50bd0605b015f80266418e391c3c10fe.tar.xz zsh-c292a3ae50bd0605b015f80266418e391c3c10fe.zip |
Sven: 13108: Handle traps synchronously
pws: 13109, 13111: clear up zle display when output produced in trap.
Diffstat (limited to 'Src/Zle/zle_thingy.c')
-rw-r--r-- | Src/Zle/zle_thingy.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Src/Zle/zle_thingy.c b/Src/Zle/zle_thingy.c index 7e81e2f88..f5acb73b4 100644 --- a/Src/Zle/zle_thingy.c +++ b/Src/Zle/zle_thingy.c @@ -339,6 +339,7 @@ bin_zle(char *name, char **args, char *ops, int func) { 'R', bin_zle_refresh, 0, -1 }, { 'M', bin_zle_mesg, 1, 1 }, { 'U', bin_zle_unget, 1, 1 }, + { 'I', bin_zle_invalidate, 0, 0 }, { 0, bin_zle_call, 0, -1 }, }; struct opn const *op, *opp; @@ -396,10 +397,8 @@ bin_zle_refresh(char *name, char **args, char *ops, char func) char *s = statusline; int sl = statusll, ocl = clearlist; - if (!zleactive) { - zwarnnam(name, "can only be called from widget function", NULL, 0); + if (!zleactive) return 1; - } statusline = NULL; statusll = 0; if (*args) { @@ -656,6 +655,17 @@ bin_zle_call(char *name, char **args, char *ops, char func) return ret; } +/**/ +static int +bin_zle_invalidate(char *name, char **args, char *ops, char func) +{ + if (zleactive) { + trashzle(); + return 0; + } else + return 1; +} + /*******************/ /* initialiasation */ /*******************/ |