diff options
| author | Toby Goodwin <toby@paccrat.org> | 2016-08-25 21:46:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-25 21:46:12 +0100 |
| commit | 2ab8e78dfa862d4a378f766548442c24efa516cc (patch) | |
| tree | ce4d6acab4282f818f6c8068e93523a1aecc6ba4 /edit-editline.c | |
| parent | c95bdf7ce9be6c6ed8ca4b0a474fc4947836eba9 (diff) | |
| parent | a5faae14cd81c019b8757c2f263799d19a2218e0 (diff) | |
Merge pull request #14 from muennich/edit-sigh
Restore signal handlers when catching signals in edit_alloc()
Diffstat (limited to 'edit-editline.c')
| -rw-r--r-- | edit-editline.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/edit-editline.c b/edit-editline.c index 85e3f40..2069aef 100644 --- a/edit-editline.c +++ b/edit-editline.c @@ -29,7 +29,11 @@ void *edit_begin(int fd) { } /* +static void (*oldint)(int), (*oldquit)(int); + static void edit_catcher(int sig) { + sys_signal(SIGINT, oldint); + sys_signal(SIGQUIT, oldquit); write(2, "\n", 1); rc_raise(eError); } @@ -42,7 +46,6 @@ char *edit_alloc(void *cookie, size_t *count) { const char *r; HistEvent he; struct cookie *c = cookie; - void (*oldint)(int), (*oldquit)(int); oldint = sys_signal(SIGINT, edit_catcher); oldquit = sys_signal(SIGQUIT, edit_catcher); |