mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Add a variant of remain-on-exit that only keeps the pane if the program
failed, GitHub issue 2513.
This commit is contained in:
16
server-fn.c
16
server-fn.c
@ -314,6 +314,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) {
|
||||
bufferevent_free(wp->event);
|
||||
@ -322,10 +323,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;
|
||||
|
Reference in New Issue
Block a user