From a401420273490717de3f6fe8f7f0915692be72a3 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Mon, 18 Jun 2012 15:17:55 +0000 Subject: [PATCH] Sync OpenBSD patchset 1137: Tidy up bell code, from Thomas Adam. --- server-window.c | 49 ++++++++++++++----------------------------------- 1 file changed, 14 insertions(+), 35 deletions(-) diff --git a/server-window.c b/server-window.c index 69e4c6c1..b48c8a24 100644 --- a/server-window.c +++ b/server-window.c @@ -76,46 +76,25 @@ server_window_check_bell(struct session *s, struct winlink *wl) return (0); if (s->curw != wl || s->flags & SESSION_UNATTACHED) wl->flags |= WINLINK_BELL; + if (s->flags & SESSION_UNATTACHED) + return (1); + visual = options_get_number(&s->options, "visual-bell"); action = options_get_number(&s->options, "bell-action"); - switch (action) { - case BELL_ANY: - if (s->flags & SESSION_UNATTACHED) - break; - visual = options_get_number(&s->options, "visual-bell"); - for (i = 0; i < ARRAY_LENGTH(&clients); i++) { - c = ARRAY_ITEM(&clients, i); - if (c == NULL || c->session != s) - continue; - if (!visual) { - tty_bell(&c->tty); - continue; - } - if (c->session->curw->window == w) { - status_message_set(c, "Bell in current window"); - continue; - } - status_message_set(c, "Bell in window %u", - winlink_find_by_window(&s->windows, w)->idx); + for (i = 0; i < ARRAY_LENGTH(&clients); i++) { + c = ARRAY_ITEM(&clients, i); + if (c == NULL || c->session != s) + continue; + if (!visual) { + tty_bell(&c->tty); + continue; } - break; - case BELL_CURRENT: - if (s->flags & SESSION_UNATTACHED) - break; - visual = options_get_number(&s->options, "visual-bell"); - for (i = 0; i < ARRAY_LENGTH(&clients); i++) { - c = ARRAY_ITEM(&clients, i); - if (c == NULL || c->session != s) - continue; - if (c->session->curw->window != w) - continue; - if (!visual) { - tty_bell(&c->tty); - continue; - } + if (c->session->curw->window == w) status_message_set(c, "Bell in current window"); + else if (action == BELL_ANY) { + status_message_set(c, "Bell in window %u", + winlink_find_by_window(&s->windows, w)->idx); } - break; } return (1);