From 30f6d9b167907783122869100046954e52c07694 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Fri, 7 Jan 2011 16:55:40 +0000 Subject: Sync OpenBSD patchset 813: Add a function to create window flags rather than doing the same thing in two places. From Thomas Adam. --- window.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'window.c') diff --git a/window.c b/window.c index 1942e040..0fdc1171 100644 --- a/window.c +++ b/window.c @@ -1,4 +1,4 @@ -/* $Id: window.c,v 1.142 2010-12-06 22:52:21 nicm Exp $ */ +/* $Id: window.c,v 1.143 2011-01-07 16:55:40 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -460,6 +460,32 @@ window_destroy_panes(struct window *w) } } +/* Return list of printable window flag symbols. No flags is just a space. */ +char * +window_printable_flags(struct session *s, struct winlink *wl) +{ + char flags[BUFSIZ]; + int pos; + + pos = 0; + if (wl->flags & WINLINK_ACTIVITY) + flags[pos++] = '#'; + if (wl->flags & WINLINK_BELL) + flags[pos++] = '!'; + if (wl->flags & WINLINK_CONTENT) + flags[pos++] = '+'; + if (wl->flags & WINLINK_SILENCE) + flags[pos++] = '~'; + if (wl == s->curw) + flags[pos++] = '*'; + if (wl == TAILQ_FIRST(&s->lastw)) + flags[pos++] = '-'; + if (pos == 0) + flags[pos++] = ' '; + flags[pos] = '\0'; + return (xstrdup(flags)); +} + struct window_pane * window_pane_create(struct window *w, u_int sx, u_int sy, u_int hlimit) { -- cgit