aboutsummaryrefslogtreecommitdiff
path: root/format.c
diff options
context:
space:
mode:
authornicm <nicm>2022-03-08 18:31:46 +0000
committernicm <nicm>2022-03-08 18:31:46 +0000
commita3d920930bf77cafa5260e25584dd3ba1d26f9cb (patch)
tree8b8515e1a02da155fb1c6d7acd506747efb7de58 /format.c
parentad9b8059836d424f70a8579d28e28e0186cdbaa6 (diff)
downloadrtmux-a3d920930bf77cafa5260e25584dd3ba1d26f9cb.tar.gz
rtmux-a3d920930bf77cafa5260e25584dd3ba1d26f9cb.tar.bz2
rtmux-a3d920930bf77cafa5260e25584dd3ba1d26f9cb.zip
Add remain-on-exit-format to set text shown when pane is dead.
Diffstat (limited to 'format.c')
-rw-r--r--format.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/format.c b/format.c
index f381a0ec..981161b3 100644
--- a/format.c
+++ b/format.c
@@ -1756,6 +1756,23 @@ format_cb_pane_dead(struct format_tree *ft)
return (NULL);
}
+/* Callback for pane_dead_signal. */
+static void *
+format_cb_pane_dead_signal(struct format_tree *ft)
+{
+ struct window_pane *wp = ft->wp;
+ const char *name;
+
+ if (wp != NULL) {
+ if ((wp->flags & PANE_STATUSREADY) && WIFSIGNALED(wp->status)) {
+ name = sig2name(WTERMSIG(wp->status));
+ return (format_printf("%s", name));
+ }
+ return (NULL);
+ }
+ return (NULL);
+}
+
/* Callback for pane_dead_status. */
static void *
format_cb_pane_dead_status(struct format_tree *ft)
@@ -1770,6 +1787,20 @@ format_cb_pane_dead_status(struct format_tree *ft)
return (NULL);
}
+/* Callback for pane_dead_time. */
+static void *
+format_cb_pane_dead_time(struct format_tree *ft)
+{
+ struct window_pane *wp = ft->wp;
+
+ if (wp != NULL) {
+ if (wp->flags & PANE_STATUSDRAWN)
+ return (&wp->dead_time);
+ return (NULL);
+ }
+ return (NULL);
+}
+
/* Callback for pane_format. */
static void *
format_cb_pane_format(struct format_tree *ft)
@@ -2804,9 +2835,15 @@ static const struct format_table_entry format_table[] = {
{ "pane_dead", FORMAT_TABLE_STRING,
format_cb_pane_dead
},
+ { "pane_dead_signal", FORMAT_TABLE_STRING,
+ format_cb_pane_dead_signal
+ },
{ "pane_dead_status", FORMAT_TABLE_STRING,
format_cb_pane_dead_status
},
+ { "pane_dead_time", FORMAT_TABLE_TIME,
+ format_cb_pane_dead_time
+ },
{ "pane_fg", FORMAT_TABLE_STRING,
format_cb_pane_fg
},