aboutsummaryrefslogtreecommitdiff
path: root/server-fn.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-01-04 10:01:20 +0000
committerThomas Adam <thomas@xteddy.org>2021-01-04 10:01:20 +0000
commit5a2db4c7e8ba94fadb31075e6813cf53b87b5366 (patch)
tree7cbd0a3f9fcf8d0faba5aef225c7740b0c2818e2 /server-fn.c
parentf04cc3997629823f0e304d4e4184e2ec93c703f0 (diff)
parentbd0fb22f0a206a73ec3f41322571d56d9d7d7c5d (diff)
downloadrtmux-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.c16
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;