I can't reproduce this now, can you try with the change I just made?

I thought of checking flags instead of w->flags but I don't see that
alerts_reset does anything to the activity flags? Maybe I missed
something though.


On Wed, Jul 26, 2017 at 04:14:27PM +0000, Thomas Adam wrote:
>    Hi,
> 
>    I added it, otherwise you end up with the activity timer constantly being
>    triggered.
> 
>    -- Thomas Adam
>    On Wed, 26 Jul 2017 at 17:09 Nicholas Marriott
>    <[email protected]> wrote:
> 
>      If you remove this line from alerts_queue:
> 
>      A  A  A  A  if (w->flags & WINDOW_ACTIVITY)
> 
>      So it always calls alerts_reset, it fixes this case. But it might need a
>      closer look to see why this was added in the first place.
> 
>      On Wed, Jul 26, 2017 at 05:05:21PM +0200, Yvain Thonnart wrote:
>      >A  A  Sorry, missed the two important lines from the bash prompt:
>      >A  A  in .tmux.conf:
>      >A  A  -----------------
>      >A  A  set -g activity-action other
>      >A  A  set -g silence-action current
>      >A  A  set -g visual-activity on
>      >A  A  set -g visual-silence on
>      >A  A  at bash prompt within tmux:
>      >A  A  ------------------------------------
>      >A  A  tmux setw monitor-silence 10
>      >A  A  tmux setw monitor-activity on
>      >A  A  while true; do echo hello; sleep 1 ; done
>      >A  A  hello
>      >A  A  hello
>      >A  A  [...]
>      >A  A  hello
>      >A  A  [Silence in window 0]
>      >A  A  2017-07-26 17:00 GMT+02:00 Yvain Thonnart
>      <[email protected]>:
>      >
>      >A  A  A  Thank you.
>      >A  A  A  I've been testing this patch for different configurations,
>      it's very
>      >A  A  A  flexible.
>      >A  A  A  It runs fine on my side in all reasonable configurations.
>      >A  A  A  I'd be glad that you would merge it to master somedaya*|
>      >A  A  A  To be thorough, though, I've found a configuration which is
>      totally
>      >A  A  A  unreasonable, but which reports invalid alerts:
>      >A  A  A  in .tmux.conf:
>      >A  A  A  -----------------
>      >A  A  A  set -g activity-action other
>      >A  A  A  set -g silence-action current
>      >A  A  A  set -g visual-activity on
>      >A  A  A  set -g visual-silence on
>      >A  A  A  at bash prompt within tmux:
>      >A  A  A  ------------------------------------
>      >A  A  A  while true; do echo hello; sleep 1 ; done
>      >A  A  A  hello
>      >A  A  A  hello
>      >A  A  A  [...]
>      >A  A  A  hello
>      >A  A  A  [Silence in window 0]
>      >A  A  A  It is the combination of both monitor-silence and
>      monitor-activity which
>      >A  A  A  apparently resets the alert timer due to activity, which then
>      fires
>      >A  A  A  after 10 seconds, falsely reporting silence.
>      >A  A  A  I haven't managed to get the whole callback flow in your code
>      to give
>      >A  A  A  you more clues.
>      >A  A  A  I attached the server log in case this matters to you.
>      >A  A  A  I guess somebody at least as retort as myself might bump on
>      this if
>      >A  A  A  using this in his/her .tmux.conf:
>      >A  A  A  set -g activity-action other
>      >A  A  A  set -g silence-action current
>      >A  A  A  set -g visual-activity on
>      >A  A  A  set -g visual-silence on
>      >A  A  A  set -g monitor-silence 10
>      >A  A  A  set -g monitor-activity on
>      >A  A  A  Hoping that the filter on activity->other and silence->current
>      will hide
>      >A  A  A  the events set by default on any window.
>      >A  A  A  Yet as this configuration is unreasonable, this may not need
>      to be
>      >A  A  A  fixed...
>      >A  A  A  Thanks again for this, and for all your impressive work on
>      this program,
>      >A  A  A  Best regards,
>      >A  A  A  Yvain
>      >A  A  A  2017-07-26 14:43 GMT+02:00 Nicholas Marriott
>      >A  A  A  <[email protected]>:
>      >
>      >A  A  A  A  Hi
>      >
>      >A  A  A  A  OK the problem with making it work exactly like bell-action
>      is that
>      >A  A  A  A  bell-action "none" suppresses visual bell as well - this
>      means that if
>      >A  A  A  A  the default for bell-on-alert is "none" then anyone who
>      currently uses
>      >A  A  A  A  monitor-activity will need to add the option which is not
>      ideal.
>      >
>      >A  A  A  A  Also it means bell-on-alert no longer serves its original
>      purpose of
>      >A  A  A  A  allowing both visual and bell for activity and silence.
>      >
>      >A  A  A  A  And bell-on-alert is not a good name for it now.
>      >
>      >A  A  A  A  So here is what I suggest:
>      >
>      >A  A  A  A  - We remove bell-on-alert entirely.
>      >
>      >A  A  A  A  - Instead we add activity-action and silence-action which
>      are
>      >A  A  A  A  equivalent
>      >A  A  A  A  AA  to bell-action but can default to "other" instead of
>      "any".
>      >
>      >A  A  A  A  - We add a new value to visual-* "both" so it is still
>      possible to get
>      >A  A  A  A  a
>      >A  A  A  A  AA  bell and a message.
>      >
>      >A  A  A  A  This way all three are consistent.
>      >
>      >A  A  A  A  I don't much like adding a new option but it is less
>      confusing.
>      >
>      >A  A  A  A  Please try this:
>      >
>      >A  A  A  A  Index: alerts.c
>      >A  A  A  A 
>      ===================================================================
>      >A  A  A  A  RCS file: /cvs/src/usr.bin/tmux/alerts.c,v
>      >A  A  A  A  retrieving revision 1.20
>      >A  A  A  A  diff -u -p -r1.20 alerts.c
>      >A  A  A  A  --- alerts.cAA  AA  28 Jun 2017 06:45:31 -0000AA  AA  AA 
>      1.20
>      >A  A  A  A  +++ alerts.cAA  AA  26 Jul 2017 12:42:57 -0000
>      >A  A  A  A  @@ -34,9 +34,8 @@ static intAA  AA  alerts_check_all(struct
>      windo
>      >A  A  A  A  A static intAA  AA  A alerts_check_bell(struct window *);
>      >A  A  A  A  A static intAA  AA  A alerts_check_activity(struct window
>      *);
>      >A  A  A  A  A static intAA  AA  A alerts_check_silence(struct window
>      *);
>      >A  A  A  A  -static void printflike(2, 3) alerts_set_message(struct
>      session *,
>      >A  A  A  A  const char *,
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  A ...);
>      >A  A  A  A  -static voidAA  AA  alerts_ring_bell(struct session *);
>      >A  A  A  A  +static voidAA  AA  alerts_set_message(struct session *,
>      struct window
>      >A  A  A  A  *,
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A struct winlink *,
>      const char *, int,
>      >A  A  A  A  int);
>      >
>      >A  A  A  A  A static TAILQ_HEAD(, window) alerts_list =
>      >A  A  A  A  TAILQ_HEAD_INITIALIZER(alerts_list);
>      >
>      >A  A  A  A  @@ -162,11 +161,8 @@ alerts_queue(struct window *w, int
>      flags
>      >A  A  A  A  A static int
>      >A  A  A  A  A alerts_check_bell(struct window *w)
>      >A  A  A  A  A {
>      >A  A  A  A  -AA  AA  AA  A struct windowAA  A *ws;
>      >A  A  A  A  AA  AA  AA  AA  struct winlinkAA  *wl;
>      >A  A  A  A  AA  AA  AA  AA  struct sessionAA  *s;
>      >A  A  A  A  -AA  AA  AA  A struct clientAA  A *c;
>      >A  A  A  A  -AA  AA  AA  A intAA  AA  AA  AA  AA  AA  AA  action,
>      visual;
>      >
>      >A  A  A  A  AA  AA  AA  AA  if (~w->flags & WINDOW_BELL)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  return (0);
>      >A  A  A  A  @@ -187,33 +183,9 @@ alerts_check_bell(struct window *w)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  continue;
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  s->flags |=
>      SESSION_ALERTED;
>      >
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A action =
>      options_get_number(s->options,
>      >A  A  A  A  "bell-action");
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if (action == BELL_NONE)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A return (0);
>      >A  A  A  A  -
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A visual =
>      options_get_number(s->options,
>      >A  A  A  A  "visual-bell");
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A TAILQ_FOREACH(c, &clients,
>      entry) {
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A if
>      (c->session != s || c->flags &
>      >A  A  A  A  CLIENT_CONTROL)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A continue;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A ws =
>      c->session->curw->window;
>      >A  A  A  A  -
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A if (action
>      == BELL_CURRENT && ws
>      >A  A  A  A  != w)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A action = BELL_NONE;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A if (action
>      == BELL_OTHER && ws !=
>      >A  A  A  A  w)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A action = BELL_NONE;
>      >A  A  A  A  -
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A if (!visual)
>      {
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A if (action !=
>      >A  A  A  A  BELL_NONE)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  AA  AA  AA  A
>      >A  A  A  A  A tty_putcode(&c->tty, TTYC_BEL);
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A continue;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A }
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A if (action
>      == BELL_CURRENT)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A status_message_set(c,
>      >A  A  A  A  "Bell in current window");
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A else if
>      (action != BELL_NONE) {
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  A status_message_set(c,
>      >A  A  A  A  "Bell in window %d",
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      AA  AA  AA  A wl->idx);
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A }
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A }
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A alerts_set_message(s, w, wl,
>      "Bell",
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "bell-action"),
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "visual-bell"));
>      >A  A  A  A  AA  AA  AA  AA  }
>      >
>      >A  A  A  A  AA  AA  AA  AA  return (WINDOW_BELL);
>      >A  A  A  A  @@ -237,20 +209,18 @@ alerts_check_activity(struct window
>      *w)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  if (wl->flags &
>      WINLINK_ACTIVITY)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  continue;
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  s = wl->session;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if (s->curw == wl)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A continue;
>      >A  A  A  A  -
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A wl->flags |=
>      WINLINK_ACTIVITY;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A
>      notify_winlink("alert-activity", wl);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (s->curw != wl) {
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A wl->flags |=
>      WINLINK_ACTIVITY;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      notify_winlink("alert-activity",
>      >A  A  A  A  wl);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A }
>      >
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  if (s->flags &
>      SESSION_ALERTED)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  continue;
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  s->flags |=
>      SESSION_ALERTED;
>      >
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if
>      (options_get_number(s->options,
>      >A  A  A  A  "bell-on-alert"))
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      alerts_ring_bell(s);
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if
>      (options_get_number(s->options,
>      >A  A  A  A  "visual-activity"))
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      alerts_set_message(s, "Activity in
>      >A  A  A  A  window %d", wl->idx);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A alerts_set_message(s, w, wl,
>      "Activity",
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "activity-action"),
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "visual-activity"));
>      >A  A  A  A  AA  AA  AA  AA  }
>      >
>      >A  A  A  A  AA  AA  AA  AA  return (WINDOW_ACTIVITY);
>      >A  A  A  A  @@ -264,7 +234,7 @@ alerts_check_silence(struct window *w)
>      >A  A  A  A  AA  AA  AA  AA  if (~w->flags & WINDOW_SILENCE)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  return (0);
>      >A  A  A  A  -AA  AA  AA  A if (!options_get_number(w->options,
>      "monitor-silence"))
>      >A  A  A  A  +AA  AA  AA  A if (options_get_number(w->options,
>      "monitor-silence") ==
>      >A  A  A  A  0)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  return (0);
>      >
>      >A  A  A  A  AA  AA  AA  AA  TAILQ_FOREACH(wl, &w->winlinks, wentry)
>      >A  A  A  A  @@ -274,50 +244,66 @@ alerts_check_silence(struct window
>      *w)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  if (wl->flags &
>      WINLINK_SILENCE)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  continue;
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  s = wl->session;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if (s->curw == wl)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A continue;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A wl->flags |=
>      WINLINK_SILENCE;
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A
>      notify_winlink("alert-silence", wl);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (s->curw != wl) {
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A wl->flags |=
>      WINLINK_SILENCE;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      notify_winlink("alert-silence",
>      >A  A  A  A  wl);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A }
>      >
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  if (s->flags &
>      SESSION_ALERTED)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  continue;
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  s->flags |=
>      SESSION_ALERTED;
>      >
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if
>      (options_get_number(s->options,
>      >A  A  A  A  "bell-on-alert"))
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      alerts_ring_bell(s);
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if
>      (options_get_number(s->options,
>      >A  A  A  A  "visual-silence"))
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      alerts_set_message(s, "Silence in
>      >A  A  A  A  window %d", wl->idx);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A alerts_set_message(s, w, wl,
>      "Silence",
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "silence-action"),
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      options_get_number(s->options,
>      >A  A  A  A  "visual-silence"));
>      >A  A  A  A  AA  AA  AA  AA  }
>      >
>      >A  A  A  A  AA  AA  AA  AA  return (WINDOW_SILENCE);
>      >A  A  A  A  A }
>      >
>      >A  A  A  A  A static void
>      >A  A  A  A  -alerts_set_message(struct session *s, const char *fmt,
>      ...)
>      >A  A  A  A  +alerts_set_message(struct session *s, struct window *w,
>      struct
>      >A  A  A  A  winlink *wl,
>      >A  A  A  A  +AA  AA  const char *type, int action, int visual)
>      >A  A  A  A  A {
>      >A  A  A  A  AA  AA  AA  AA  struct clientAA  A *c;
>      >A  A  A  A  -AA  AA  AA  A va_listAA  AA  AA  AA  AA  ap;
>      >A  A  A  A  -AA  AA  AA  A charAA  AA  AA  AA  AA  AA  *message;
>      >A  A  A  A  +AA  AA  AA  A intAA  AA  AA  AA  AA  AA  AA  flag;
>      >
>      >A  A  A  A  -AA  AA  AA  A va_start(ap, fmt);
>      >A  A  A  A  -AA  AA  AA  A xvasprintf(&message, fmt, ap);
>      >A  A  A  A  -AA  AA  AA  A va_end(ap);
>      >A  A  A  A  +AA  AA  AA  A /*
>      >A  A  A  A  +AA  AA  AA  AA  * We have found an alert (bell, activity
>      or silence), so
>      >A  A  A  A  we need
>      >A  A  A  A  +AA  AA  AA  AA  * to notify the user. For each client
>      attached to this
>      >A  A  A  A  session,
>      >A  A  A  A  +AA  AA  AA  AA  * decide whether a bell (or visual
>      message) is needed.
>      >A  A  A  A  +AA  AA  AA  AA  *
>      >A  A  A  A  +AA  AA  AA  AA  * {bell,activity,silence}-action
>      determines when we
>      >A  A  A  A  notify: none means
>      >A  A  A  A  +AA  AA  AA  AA  * nothing happens, current means we only
>      do something for
>      >A  A  A  A  the current
>      >A  A  A  A  +AA  AA  AA  AA  * window and other means only for windows
>      other than the
>      >A  A  A  A  current.
>      >A  A  A  A  +AA  AA  AA  AA  *
>      >A  A  A  A  +AA  AA  AA  AA  * If visual-{bell,activity,silence} is on,
>      then a message
>      >A  A  A  A  is
>      >A  A  A  A  +AA  AA  AA  AA  * substituted for a bell; if it is off, a
>      bell is sent as
>      >A  A  A  A  normal; both
>      >A  A  A  A  +AA  AA  AA  AA  * mean both a bell and visual message is
>      sent.
>      >A  A  A  A  +AA  AA  AA  AA  */
>      >A  A  A  A  +AA  AA  AA  A if (action == BELL_NONE)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A return;
>      >A  A  A  A  AA  AA  AA  AA  TAILQ_FOREACH(c, &clients, entry) {
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if (c->session == s)
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      status_message_set(c, "%s",
>      >A  A  A  A  message);
>      >A  A  A  A  -AA  AA  AA  A }
>      >A  A  A  A  -
>      >A  A  A  A  -AA  AA  AA  A free(message);
>      >A  A  A  A  -}
>      >A  A  A  A  -
>      >A  A  A  A  -static void
>      >A  A  A  A  -alerts_ring_bell(struct session *s)
>      >A  A  A  A  -{
>      >A  A  A  A  -AA  AA  AA  A struct clientAA  A *c;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (c->session != s ||
>      c->flags &
>      >A  A  A  A  CLIENT_CONTROL)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A continue;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A flag = 0;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (action == BELL_ANY)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A flag = 1;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A else if (action ==
>      BELL_CURRENT)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A flag =
>      (c->session->curw->window
>      >A  A  A  A  == w);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A else if (action ==
>      BELL_OTHER)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A flag =
>      (c->session->curw->window
>      >A  A  A  A  != w);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (!flag)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A continue;
>      >
>      >A  A  A  A  -AA  AA  AA  A TAILQ_FOREACH(c, &clients, entry) {
>      >A  A  A  A  -AA  AA  AA  AA  AA  AA  AA  A if (c->session == s &&
>      !(c->flags &
>      >A  A  A  A  CLIENT_CONTROL))
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (visual == VISUAL_OFF ||
>      visual ==
>      >A  A  A  A  VISUAL_BOTH)
>      >A  A  A  A  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA 
>      tty_putcode(&c->tty, TTYC_BEL);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (visual == VISUAL_OFF)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A continue;
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A if (c->session->curw->window
>      == w)
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      status_message_set(c, "%s in
>      >A  A  A  A  current window", type);
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  A else
>      >A  A  A  A  +AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  AA  A
>      status_message_set(c, "%s in
>      >A  A  A  A  window %d", type, wl->idx);
>      >A  A  A  A  AA  AA  AA  AA  }
>      >A  A  A  A  A }
>      >A  A  A  A  Index: options-table.c
>      >A  A  A  A 
>      ===================================================================
>      >A  A  A  A  RCS file: /cvs/src/usr.bin/tmux/options-table.c,v
>      >A  A  A  A  retrieving revision 1.90
>      >A  A  A  A  diff -u -p -r1.90 options-table.c
>      >A  A  A  A  --- options-table.cAA  AA  A 23 Jun 2017 15:36:52 -0000AA 
>      AA  AA  1.90
>      >A  A  A  A  +++ options-table.cAA  AA  A 26 Jul 2017 12:42:57 -0000
>      >A  A  A  A  @@ -51,6 +51,9 @@ static const char *options_table_status_
>      >A  A  A  A  A static const char *options_table_bell_action_list[] = {
>      >A  A  A  A  AA  AA  AA  AA  "none", "any", "current", "other", NULL
>      >A  A  A  A  A };
>      >A  A  A  A  +static const char *options_table_visual_bell_list[] = {
>      >A  A  A  A  +AA  AA  AA  A "off", "on", "both", NULL
>      >A  A  A  A  +};
>      >A  A  A  A  A static const char *options_table_pane_status_list[] = {
>      >A  A  A  A  AA  AA  AA  AA  "off", "top", "bottom", NULL
>      >A  A  A  A  A };
>      >A  A  A  A  @@ -143,6 +146,13 @@ const struct options_table_entry
>      options
>      >A  A  A  A  AA  AA  AA  AA  AA  .separator = ","
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  +AA  AA  AA  A { .name = "activity-action",
>      >A  A  A  A  +AA  AA  AA  AA  A .type = OPTIONS_TABLE_CHOICE,
>      >A  A  A  A  +AA  AA  AA  AA  A .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  +AA  AA  AA  AA  A .choices =
>      options_table_bell_action_list,
>      >A  A  A  A  +AA  AA  AA  AA  A .default_num = BELL_OTHER
>      >A  A  A  A  +AA  AA  AA  A },
>      >A  A  A  A  +
>      >A  A  A  A  AA  AA  AA  AA  { .name = "assume-paste-time",
>      >A  A  A  A  AA  AA  AA  AA  AA  .type = OPTIONS_TABLE_NUMBER,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  @@ -166,12 +176,6 @@ const struct options_table_entry
>      options
>      >A  A  A  A  AA  AA  AA  AA  AA  .default_num = BELL_ANY
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  -AA  AA  AA  A { .name = "bell-on-alert",
>      >A  A  A  A  -AA  AA  AA  AA  A .type = OPTIONS_TABLE_FLAG,
>      >A  A  A  A  -AA  AA  AA  AA  A .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  -AA  AA  AA  AA  A .default_num = 0
>      >A  A  A  A  -AA  AA  AA  A },
>      >A  A  A  A  -
>      >A  A  A  A  AA  AA  AA  AA  { .name = "default-command",
>      >A  A  A  A  AA  AA  AA  AA  AA  .type = OPTIONS_TABLE_STRING,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  @@ -350,6 +354,13 @@ const struct options_table_entry
>      options
>      >A  A  A  A  AA  AA  AA  AA  AA  .default_str = "#S:#I:#W - \"#T\"
>      #{session_alerts}"
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  +AA  AA  AA  A { .name = "silence-action",
>      >A  A  A  A  +AA  AA  AA  AA  A .type = OPTIONS_TABLE_CHOICE,
>      >A  A  A  A  +AA  AA  AA  AA  A .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  +AA  AA  AA  AA  A .choices =
>      options_table_bell_action_list,
>      >A  A  A  A  +AA  AA  AA  AA  A .default_num = BELL_OTHER
>      >A  A  A  A  +AA  AA  AA  A },
>      >A  A  A  A  +
>      >A  A  A  A  AA  AA  AA  AA  { .name = "status",
>      >A  A  A  A  AA  AA  AA  AA  AA  .type = OPTIONS_TABLE_FLAG,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  @@ -502,21 +513,24 @@ const struct options_table_entry
>      options
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  AA  AA  AA  AA  { .name = "visual-activity",
>      >A  A  A  A  -AA  AA  AA  AA  A .type = OPTIONS_TABLE_FLAG,
>      >A  A  A  A  +AA  AA  AA  AA  A .type = OPTIONS_TABLE_CHOICE,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  -AA  AA  AA  AA  A .default_num = 0
>      >A  A  A  A  +AA  AA  AA  AA  A .choices =
>      options_table_visual_bell_list,
>      >A  A  A  A  +AA  AA  AA  AA  A .default_num = VISUAL_OFF
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  AA  AA  AA  AA  { .name = "visual-bell",
>      >A  A  A  A  -AA  AA  AA  AA  A .type = OPTIONS_TABLE_FLAG,
>      >A  A  A  A  +AA  AA  AA  AA  A .type = OPTIONS_TABLE_CHOICE,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  -AA  AA  AA  AA  A .default_num = 0
>      >A  A  A  A  +AA  AA  AA  AA  A .choices =
>      options_table_visual_bell_list,
>      >A  A  A  A  +AA  AA  AA  AA  A .default_num = VISUAL_OFF
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  AA  AA  AA  AA  { .name = "visual-silence",
>      >A  A  A  A  -AA  AA  AA  AA  A .type = OPTIONS_TABLE_FLAG,
>      >A  A  A  A  +AA  AA  AA  AA  A .type = OPTIONS_TABLE_CHOICE,
>      >A  A  A  A  AA  AA  AA  AA  AA  .scope = OPTIONS_TABLE_SESSION,
>      >A  A  A  A  -AA  AA  AA  AA  A .default_num = 0
>      >A  A  A  A  +AA  AA  AA  AA  A .choices =
>      options_table_visual_bell_list,
>      >A  A  A  A  +AA  AA  AA  AA  A .default_num = VISUAL_OFF
>      >A  A  A  A  AA  AA  AA  AA  },
>      >
>      >A  A  A  A  AA  AA  AA  AA  { .name = "word-separators",
>      >A  A  A  A  Index: tmux.1
>      >A  A  A  A 
>      ===================================================================
>      >A  A  A  A  RCS file: /cvs/src/usr.bin/tmux/tmux.1,v
>      >A  A  A  A  retrieving revision 1.568
>      >A  A  A  A  diff -u -p -r1.568 tmux.1
>      >A  A  A  A  --- tmux.1AA  AA  AA  21 Jul 2017 09:17:19 -0000AA  AA  AA 
>      1.568
>      >A  A  A  A  +++ tmux.1AA  AA  AA  26 Jul 2017 12:42:58 -0000
>      >A  A  A  A  @@ -2515,6 +2515,25 @@ before interpretation.
>      >A  A  A  A  A .Pp
>      >A  A  A  A  A Available session options are:
>      >A  A  A  A  A .Bl -tag -width Ds
>      >A  A  A  A  +.It Xo Ic activity-action
>      >A  A  A  A  +.Op Ic any | none | current | other
>      >A  A  A  A  +.Xc
>      >A  A  A  A  +Set action on window activity when
>      >A  A  A  A  +.Ic monitor-activity
>      >A  A  A  A  +is on.
>      >A  A  A  A  +.Ic any
>      >A  A  A  A  +means activity in any window linked to a session causes a
>      bell or
>      >A  A  A  A  message
>      >A  A  A  A  +(depending on
>      >A  A  A  A  +.Ic visual-activity )
>      >A  A  A  A  +in the current window of that session,
>      >A  A  A  A  +.Ic none
>      >A  A  A  A  +means all activity is ignored (equivalent to
>      >A  A  A  A  +.Ic monitor-activity
>      >A  A  A  A  +being off),
>      >A  A  A  A  +.Ic current
>      >A  A  A  A  +means only activity in windows other than the current
>      window are
>      >A  A  A  A  ignored and
>      >A  A  A  A  +.Ic other
>      >A  A  A  A  +means activity in the current window is ignored but not
>      those in
>      >A  A  A  A  other windows.
>      >A  A  A  A  A .It Ic assume-paste-time Ar milliseconds
>      >A  A  A  A  A If keys are entered faster than one in
>      >A  A  A  A  A .Ar milliseconds ,
>      >A  A  A  A  @@ -2530,20 +2549,8 @@ The default is zero.
>      >A  A  A  A  A .Op Ic any | none | current | other
>      >A  A  A  A  A .Xc
>      >A  A  A  A  A Set action on window bell.
>      >A  A  A  A  -.Ic any
>      >A  A  A  A  -means a bell in any window linked to a session causes a
>      bell in the
>      >A  A  A  A  current
>      >A  A  A  A  -window of that session,
>      >A  A  A  A  -.Ic none
>      >A  A  A  A  -means all bells are ignored,
>      >A  A  A  A  -.Ic current
>      >A  A  A  A  -means only bells in windows other than the current window
>      are ignored
>      >A  A  A  A  and
>      >A  A  A  A  -.Ic other
>      >A  A  A  A  -means bells in the current window are ignored but not
>      those in other
>      >A  A  A  A  windows.
>      >A  A  A  A  -.It Xo Ic bell-on-alert
>      >A  A  A  A  -.Op Ic on | off
>      >A  A  A  A  -.Xc
>      >A  A  A  A  -If on, ring the terminal bell when an alert
>      >A  A  A  A  -occurs.
>      >A  A  A  A  +The values are the same as those for
>      >A  A  A  A  +.Ic activity-action .
>      >A  A  A  A  A .It Ic default-command Ar shell-command
>      >A  A  A  A  A Set the command used for new windows (if not specified
>      when the
>      >A  A  A  A  window is
>      >A  A  A  A  A created) to
>      >A  A  A  A  @@ -2759,6 +2766,15 @@ is on.
>      >A  A  A  A  A Formats are expanded, see the
>      >A  A  A  A  A .Sx FORMATS
>      >A  A  A  A  A section.
>      >A  A  A  A  +.It Xo Ic silence-action
>      >A  A  A  A  +.Op Ic any | none | current | other
>      >A  A  A  A  +.Xc
>      >A  A  A  A  +Set action on window silence when
>      >A  A  A  A  +.Ic monitor-silence
>      >A  A  A  A  +is on.
>      >A  A  A  A  +The values are the same as those for
>      >A  A  A  A  +.Ic activity-action .
>      >A  A  A  A  +.Pp
>      >A  A  A  A  A .It Xo Ic status
>      >A  A  A  A  A .Op Ic on | off
>      >A  A  A  A  A .Xc
>      >A  A  A  A  @@ -2884,26 +2900,30 @@ set -s user-keys[0] '\e[5;30012~'
>      >A  A  A  A  A bind User0 resize-pane -L 3
>      >A  A  A  A  A .Ed
>      >A  A  A  A  A .It Xo Ic visual-activity
>      >A  A  A  A  -.Op Ic on | off
>      >A  A  A  A  +.Op Ic on | off | both
>      >A  A  A  A  A .Xc
>      >A  A  A  A  -If on, display a status line message when activity occurs
>      in a window
>      >A  A  A  A  -for which the
>      >A  A  A  A  +If on, display a message instead of sending a bell when
>      activity
>      >A  A  A  A  occurs in a
>      >A  A  A  A  +window for which the
>      >A  A  A  A  A .Ic monitor-activity
>      >A  A  A  A  A window option is enabled.
>      >A  A  A  A  +If set to both, a bell and a message are produced.
>      >A  A  A  A  A .It Xo Ic visual-bell
>      >A  A  A  A  -.Op Ic on | off
>      >A  A  A  A  +.Op Ic on | off | both
>      >A  A  A  A  A .Xc
>      >A  A  A  A  -If this option is on, a message is shown on a bell instead
>      of it
>      >A  A  A  A  being passed
>      >A  A  A  A  -through to the terminal (which normally makes a sound).
>      >A  A  A  A  +If on, a message is shown on a bell instead of it being
>      passed
>      >A  A  A  A  through to the
>      >A  A  A  A  +terminal (which normally makes a sound).
>      >A  A  A  A  +If set to both, a bell and a message are produced.
>      >A  A  A  A  A Also see the
>      >A  A  A  A  A .Ic bell-action
>      >A  A  A  A  A option.
>      >A  A  A  A  A .It Xo Ic visual-silence
>      >A  A  A  A  -.Op Ic on | off
>      >A  A  A  A  +.Op Ic on | off | both
>      >A  A  A  A  A .Xc
>      >A  A  A  A  A If
>      >A  A  A  A  A .Ic monitor-silence
>      >A  A  A  A  -is enabled, prints a message after the interval has
>      expired on a
>      >A  A  A  A  given window.
>      >A  A  A  A  +is enabled, prints a message after the interval has
>      expired on a
>      >A  A  A  A  given window
>      >A  A  A  A  +instead of sending a bell.
>      >A  A  A  A  +If set to both, a bell and a message are produced.
>      >A  A  A  A  A .It Ic word-separators Ar string
>      >A  A  A  A  A Sets the session's conception of what characters are
>      considered word
>      >A  A  A  A  A separators, for the purposes of the next and previous
>      word commands
>      >A  A  A  A  in
>      >A  A  A  A  Index: tmux.h
>      >A  A  A  A 
>      ===================================================================
>      >A  A  A  A  RCS file: /cvs/src/usr.bin/tmux/tmux.h,v
>      >A  A  A  A  retrieving revision 1.796
>      >A  A  A  A  diff -u -p -r1.796 tmux.h
>      >A  A  A  A  --- tmux.hAA  AA  AA  14 Jul 2017 18:49:07 -0000AA  AA  AA 
>      1.796
>      >A  A  A  A  +++ tmux.hAA  AA  AA  26 Jul 2017 12:42:58 -0000
>      >A  A  A  A  @@ -83,6 +83,11 @@ struct tmuxproc;
>      >A  A  A  A  A #define BELL_CURRENT 2
>      >A  A  A  A  A #define BELL_OTHER 3
>      >
>      >A  A  A  A  +/* Visual option values. */
>      >A  A  A  A  +#define VISUAL_OFF 0
>      >A  A  A  A  +#define VISUAL_ON 1
>      >A  A  A  A  +#define VISUAL_BOTH 2
>      >A  A  A  A  +
>      >A  A  A  A  A /* Special key codes. */
>      >A  A  A  A  A #define KEYC_NONE 0xffff00000000ULL
>      >A  A  A  A  A #define KEYC_UNKNOWN 0xfffe00000000ULL
> 
>      --
>      You received this message because you are subscribed to the Google
>      Groups "tmux-users" group.
>      To unsubscribe from this group and stop receiving emails from it, send
>      an email to [email protected].
>      To post to this group, send an email to [email protected].
>      For more options, visit https://groups.google.com/d/optout.
> 
>    --
>    You received this message because you are subscribed to the Google Groups
>    "tmux-users" group.
>    To unsubscribe from this group and stop receiving emails from it, send an
>    email to [email protected].
>    To post to this group, send email to [email protected].
>    For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to