Add client-detached notification in control mode, from Mohsin Kaleem.
authornicm <nicm@openbsd.org>
Tue, 16 Mar 2021 09:14:58 +0000 (09:14 +0000)
committernicm <nicm@openbsd.org>
Tue, 16 Mar 2021 09:14:58 +0000 (09:14 +0000)
usr.bin/tmux/control-notify.c
usr.bin/tmux/notify.c
usr.bin/tmux/tmux.1
usr.bin/tmux/tmux.h

index 5c8a949..8cef39a 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: control-notify.c,v 1.28 2021/01/20 07:16:54 nicm Exp $ */
+/* $OpenBSD: control-notify.c,v 1.29 2021/03/16 09:14:58 nicm Exp $ */
 
 /*
  * Copyright (c) 2012 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -171,6 +171,17 @@ control_notify_client_session_changed(struct client *cc)
        }
 }
 
+void
+control_notify_client_detached(struct client *cc)
+{
+       struct client   *c;
+
+       TAILQ_FOREACH(c, &clients, entry) {
+               if (CONTROL_SHOULD_NOTIFY_CLIENT(c))
+                       control_write(c, "%%client-detached %s", cc->name);
+       }
+}
+
 void
 control_notify_session_renamed(struct session *s)
 {
index 13b2ad3..9bb6e4e 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: notify.c,v 1.36 2020/05/21 07:24:13 nicm Exp $ */
+/* $OpenBSD: notify.c,v 1.37 2021/03/16 09:14:58 nicm Exp $ */
 
 /*
  * Copyright (c) 2012 George Nachman <tmux@georgester.com>
@@ -126,6 +126,8 @@ notify_callback(struct cmdq_item *item, void *data)
                control_notify_window_renamed(ne->window);
        if (strcmp(ne->name, "client-session-changed") == 0)
                control_notify_client_session_changed(ne->client);
+       if (strcmp(ne->name, "client-detached") == 0)
+               control_notify_client_detached(ne->client);
        if (strcmp(ne->name, "session-renamed") == 0)
                control_notify_session_renamed(ne->session);
        if (strcmp(ne->name, "session-created") == 0)
index 3817d0d..8a66559 100644 (file)
@@ -1,4 +1,4 @@
-.\" $OpenBSD: tmux.1,v 1.829 2021/03/11 06:41:04 nicm Exp $
+.\" $OpenBSD: tmux.1,v 1.830 2021/03/16 09:14:58 nicm Exp $
 .\"
 .\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
 .\"
@@ -14,7 +14,7 @@
 .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
 .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd $Mdocdate: March 11 2021 $
+.Dd $Mdocdate: March 16 2021 $
 .Dt TMUX 1
 .Os
 .Sh NAME
@@ -6107,6 +6107,8 @@ A notification will never occur inside an output block.
 .Pp
 The following notifications are defined:
 .Bl -tag -width Ds
+.It Ic %client-detached Ar client
+The client has detached.
 .It Ic %client-session-changed Ar client session-id name
 The client is now attached to the session with ID
 .Ar session-id ,
index d363a1e..e3b23f0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.1099 2021/03/11 07:08:18 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.1100 2021/03/16 09:14:58 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -2945,6 +2945,7 @@ void      control_notify_window_unlinked(struct session *, struct window *);
 void   control_notify_window_linked(struct session *, struct window *);
 void   control_notify_window_renamed(struct window *);
 void   control_notify_client_session_changed(struct client *);
+void   control_notify_client_detached(struct client *);
 void   control_notify_session_renamed(struct session *);
 void   control_notify_session_created(struct session *);
 void   control_notify_session_closed(struct session *);