diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-01-04 10:01:20 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-01-04 10:01:20 +0000 |
commit | 5a2db4c7e8ba94fadb31075e6813cf53b87b5366 (patch) | |
tree | 7cbd0a3f9fcf8d0faba5aef225c7740b0c2818e2 /server-fn.c | |
parent | f04cc3997629823f0e304d4e4184e2ec93c703f0 (diff) | |
parent | bd0fb22f0a206a73ec3f41322571d56d9d7d7c5d (diff) | |
download | rtmux-5a2db4c7e8ba94fadb31075e6813cf53b87b5366.tar.gz rtmux-5a2db4c7e8ba94fadb31075e6813cf53b87b5366.tar.bz2 rtmux-5a2db4c7e8ba94fadb31075e6813cf53b87b5366.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'server-fn.c')
-rw-r--r-- | server-fn.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/server-fn.c b/server-fn.c index e3cc181f..0bda8198 100644 --- a/server-fn.c +++ b/server-fn.c @@ -312,6 +312,7 @@ server_destroy_pane(struct window_pane *wp, int notify) struct grid_cell gc; time_t t; char tim[26]; + int remain_on_exit; if (wp->fd != -1) { #ifdef HAVE_UTEMPTER @@ -323,10 +324,17 @@ server_destroy_pane(struct window_pane *wp, int notify) wp->fd = -1; } - if (options_get_number(wp->options, "remain-on-exit")) { - if (~wp->flags & PANE_STATUSREADY) - return; - + remain_on_exit = options_get_number(wp->options, "remain-on-exit"); + if (remain_on_exit != 0 && (~wp->flags & PANE_STATUSREADY)) + return; + switch (remain_on_exit) { + case 0: + break; + case 2: + if (WIFEXITED(wp->status) && WEXITSTATUS(wp->status) == 0) + break; + /* FALLTHROUGH */ + case 1: if (wp->flags & PANE_STATUSDRAWN) return; wp->flags |= PANE_STATUSDRAWN; |