diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-04-20 19:13:48 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-04-20 19:13:48 +0200 |
| commit | 5c1ce884dfec4fb361ea683ec818d6b4952bc841 (patch) | |
| tree | 6c77c9a86c7111178ec7e2ef61e1517fe4690612 /vis.c | |
| parent | 754b1cec7a39723b415ee76e797e587a7b5054dc (diff) | |
| download | vis-5c1ce884dfec4fb361ea683ec818d6b4952bc841.tar.gz vis-5c1ce884dfec4fb361ea683ec818d6b4952bc841.tar.xz | |
vis: handle termination from within win_open event gracefully
Diffstat (limited to 'vis.c')
| -rw-r--r-- | vis.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -280,7 +280,6 @@ bool vis_window_new(Vis *vis, const char *filename) { return false; } - vis_window_name(win, filename); vis_draw(vis); return true; @@ -849,7 +848,7 @@ static void vis_args(Vis *vis, int argc, char *argv[]) { } } - if (!vis->windows) { + if (!vis->windows && vis->running) { if (!strcmp(argv[argc-1], "-")) { if (!vis_window_new(vis, NULL)) vis_die(vis, "Can not create empty buffer\n"); @@ -877,6 +876,7 @@ static void vis_args(Vis *vis, int argc, char *argv[]) { } int vis_run(Vis *vis, int argc, char *argv[]) { + vis->running = true; vis_args(vis, argc, argv); struct timespec idle = { .tv_nsec = 0 }, *timeout = NULL; @@ -884,7 +884,6 @@ int vis_run(Vis *vis, int argc, char *argv[]) { sigset_t emptyset; sigemptyset(&emptyset); vis_draw(vis); - vis->running = true; vis->exit_status = EXIT_SUCCESS; sigsetjmp(vis->sigbus_jmpbuf, 1); |
