aboutsummaryrefslogtreecommitdiff
path: root/format.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-05-13 09:44:11 +0100
committerThomas Adam <thomas@xteddy.org>2015-05-13 09:44:11 +0100
commit00471dc78358bde092df65de5e2c375bf9be7437 (patch)
tree4db96614bbc7e70dcdeaa307a3280103beee2f9e /format.c
parent4165ed96f8f0c494c7bd4f793176e508b6b6581d (diff)
parent3f4ee98162cd5bb7000f93fec0e631e123b1281d (diff)
downloadrtmux-00471dc78358bde092df65de5e2c375bf9be7437.tar.gz
rtmux-00471dc78358bde092df65de5e2c375bf9be7437.tar.bz2
rtmux-00471dc78358bde092df65de5e2c375bf9be7437.zip
Merge branch 'obsd-master'
Diffstat (limited to 'format.c')
-rw-r--r--format.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/format.c b/format.c
index d045a253..e5f9d28c 100644
--- a/format.c
+++ b/format.c
@@ -495,6 +495,8 @@ format_defaults_session(struct format_tree *ft, struct session *s)
{
struct session_group *sg;
time_t t;
+ struct winlink *wl;
+ char alerts[256], tmp[16];
ft->s = s;
@@ -519,6 +521,24 @@ format_defaults_session(struct format_tree *ft, struct session *s)
format_add(ft, "session_attached", "%u", s->attached);
format_add(ft, "session_many_attached", "%d", s->attached > 1);
+
+ *alerts = '\0';
+ RB_FOREACH (wl, winlinks, &s->windows) {
+ if ((wl->flags & WINLINK_ALERTFLAGS) == 0)
+ continue;
+ snprintf(tmp, sizeof tmp, "%u", wl->idx);
+
+ if (*alerts != '\0')
+ strlcat(alerts, ",", sizeof alerts);
+ strlcat(alerts, tmp, sizeof alerts);
+ if (wl->flags & WINLINK_ACTIVITY)
+ strlcat(alerts, "#", sizeof alerts);
+ if (wl->flags & WINLINK_BELL)
+ strlcat(alerts, "!", sizeof alerts);
+ if (wl->flags & WINLINK_SILENCE)
+ strlcat(alerts, "~", sizeof alerts);
+ }
+ format_add(ft, "session_alerts", "%s", alerts);
}
/* Set default format keys for a client. */