diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-01-16 13:44:18 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-01-16 13:44:18 +0000 |
commit | 757168e2c8af374436108266cc3cfd32a946a590 (patch) | |
tree | 293929274f50de8733f00c4ae561a85e9c5fc16f /Src/init.c | |
parent | 052316fea3b74599de04fb3990a444b0ba08b04b (diff) | |
download | zsh-757168e2c8af374436108266cc3cfd32a946a590.tar.gz zsh-757168e2c8af374436108266cc3cfd32a946a590.tar.xz zsh-757168e2c8af374436108266cc3cfd32a946a590.zip |
remove 13108 (trap queues); replace with signal queueing to ensure that user signal handlers are only executed when it is safe to run them (13365)
Diffstat (limited to 'Src/init.c')
-rw-r--r-- | Src/init.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Src/init.c b/Src/init.c index 290384c1a..b07ac80d5 100644 --- a/Src/init.c +++ b/Src/init.c @@ -170,7 +170,7 @@ loop(int toplevel, int justonce) } if (isset(SINGLECOMMAND) && toplevel) { if (sigtrapped[SIGEXIT]) - dotrap(SIGEXIT, 1); + dotrap(SIGEXIT); exit(lastval); } if (justonce) @@ -1022,6 +1022,7 @@ sourcehome(char *s) { char *h; + queue_signals(); if (emulation == EMULATE_SH || emulation == EMULATE_KSH || !(h = getsparam("ZDOTDIR"))) h = home; @@ -1030,6 +1031,7 @@ sourcehome(char *s) /* Let source() complain if path is too long */ VARARR(char, buf, strlen(h) + strlen(s) + 2); sprintf(buf, "%s/%s", h, s); + unqueue_signals(); source(buf); } } |