mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
This commit is contained in:
		
							
								
								
									
										23
									
								
								alerts.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								alerts.c
									
									
									
									
									
								
							@@ -29,6 +29,7 @@ int	alerts_enabled(struct window *, int);
 | 
				
			|||||||
void	alerts_callback(int, short, void *);
 | 
					void	alerts_callback(int, short, void *);
 | 
				
			||||||
void	alerts_reset(struct window *);
 | 
					void	alerts_reset(struct window *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	alerts_run_hook(struct session *, struct winlink *, int);
 | 
				
			||||||
int	alerts_check_all(struct session *, struct winlink *);
 | 
					int	alerts_check_all(struct session *, struct winlink *);
 | 
				
			||||||
int	alerts_check_bell(struct session *, struct winlink *);
 | 
					int	alerts_check_bell(struct session *, struct winlink *);
 | 
				
			||||||
int	alerts_check_activity(struct session *, struct winlink *);
 | 
					int	alerts_check_activity(struct session *, struct winlink *);
 | 
				
			||||||
@@ -55,8 +56,6 @@ alerts_callback(__unused int fd, __unused short events, __unused void *arg)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	RB_FOREACH(w, windows, &windows) {
 | 
						RB_FOREACH(w, windows, &windows) {
 | 
				
			||||||
		RB_FOREACH(s, sessions, &sessions) {
 | 
							RB_FOREACH(s, sessions, &sessions) {
 | 
				
			||||||
			if (s->flags & SESSION_UNATTACHED)
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			RB_FOREACH(wl, winlinks, &s->windows) {
 | 
								RB_FOREACH(wl, winlinks, &s->windows) {
 | 
				
			||||||
				if (wl->window != w)
 | 
									if (wl->window != w)
 | 
				
			||||||
					continue;
 | 
										continue;
 | 
				
			||||||
@@ -73,6 +72,22 @@ alerts_callback(__unused int fd, __unused short events, __unused void *arg)
 | 
				
			|||||||
	alerts_fired = 0;
 | 
						alerts_fired = 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					alerts_run_hook(struct session *s, struct winlink *wl, int flags)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct cmd_find_state	 fs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (cmd_find_from_winlink(&fs, s, wl) != 0)
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (flags & WINDOW_BELL)
 | 
				
			||||||
 | 
							hooks_run(s->hooks, NULL, &fs, "alert-bell");
 | 
				
			||||||
 | 
						if (flags & WINDOW_SILENCE)
 | 
				
			||||||
 | 
							hooks_run(s->hooks, NULL, &fs, "alert-silence");
 | 
				
			||||||
 | 
						if (flags & WINDOW_ACTIVITY)
 | 
				
			||||||
 | 
							hooks_run(s->hooks, NULL, &fs, "alert-activity");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
alerts_check_all(struct session *s, struct winlink *wl)
 | 
					alerts_check_all(struct session *s, struct winlink *wl)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -81,8 +96,10 @@ alerts_check_all(struct session *s, struct winlink *wl)
 | 
				
			|||||||
	alerts  = alerts_check_bell(s, wl);
 | 
						alerts  = alerts_check_bell(s, wl);
 | 
				
			||||||
	alerts |= alerts_check_activity(s, wl);
 | 
						alerts |= alerts_check_activity(s, wl);
 | 
				
			||||||
	alerts |= alerts_check_silence(s, wl);
 | 
						alerts |= alerts_check_silence(s, wl);
 | 
				
			||||||
	if (alerts != 0)
 | 
						if (alerts != 0) {
 | 
				
			||||||
 | 
							alerts_run_hook(s, wl, alerts);
 | 
				
			||||||
		server_status_session(s);
 | 
							server_status_session(s);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return (alerts);
 | 
						return (alerts);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								cmd-find.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								cmd-find.c
									
									
									
									
									
								
							@@ -878,6 +878,22 @@ cmd_find_from_session(struct cmd_find_state *fs, struct session *s)
 | 
				
			|||||||
	return (0);
 | 
						return (0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Find state from a winlink. */
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					cmd_find_from_winlink(struct cmd_find_state *fs, struct session *s,
 | 
				
			||||||
 | 
					    struct winlink *wl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						cmd_find_clear_state(fs, NULL, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fs->s = s;
 | 
				
			||||||
 | 
						fs->wl = wl;
 | 
				
			||||||
 | 
						fs->w = wl->window;
 | 
				
			||||||
 | 
						fs->wp = wl->window->active;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cmd_find_log_state(__func__, fs);
 | 
				
			||||||
 | 
						return (0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Find state from a window. */
 | 
					/* Find state from a window. */
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
cmd_find_from_window(struct cmd_find_state *fs, struct window *w)
 | 
					cmd_find_from_window(struct cmd_find_state *fs, struct window *w)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								tmux.1
									
									
									
									
									
								
							@@ -3228,6 +3228,16 @@ Each hook has a
 | 
				
			|||||||
.Em name .
 | 
					.Em name .
 | 
				
			||||||
The following hooks are available:
 | 
					The following hooks are available:
 | 
				
			||||||
.Bl -tag -width "XXXXXXXXXXXXXXXX"
 | 
					.Bl -tag -width "XXXXXXXXXXXXXXXX"
 | 
				
			||||||
 | 
					.It alert-activity
 | 
				
			||||||
 | 
					Run when a window has activity.
 | 
				
			||||||
 | 
					See
 | 
				
			||||||
 | 
					.Ic monitor-activity .
 | 
				
			||||||
 | 
					.It alert-bell
 | 
				
			||||||
 | 
					Run when a window has received a bell.
 | 
				
			||||||
 | 
					.It alert-silence
 | 
				
			||||||
 | 
					Run when a window has been silent.
 | 
				
			||||||
 | 
					See
 | 
				
			||||||
 | 
					.Ic monitor-silence .
 | 
				
			||||||
.It client-attached
 | 
					.It client-attached
 | 
				
			||||||
Run when a client is attached.
 | 
					Run when a client is attached.
 | 
				
			||||||
.It client-detached
 | 
					.It client-detached
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1782,6 +1782,8 @@ void		 cmd_find_copy_state(struct cmd_find_state *,
 | 
				
			|||||||
void		 cmd_find_log_state(const char *, struct cmd_find_state *);
 | 
					void		 cmd_find_log_state(const char *, struct cmd_find_state *);
 | 
				
			||||||
int		 cmd_find_from_session(struct cmd_find_state *,
 | 
					int		 cmd_find_from_session(struct cmd_find_state *,
 | 
				
			||||||
		     struct session *);
 | 
							     struct session *);
 | 
				
			||||||
 | 
					int		 cmd_find_from_winlink(struct cmd_find_state *,
 | 
				
			||||||
 | 
							     struct session *, struct winlink *);
 | 
				
			||||||
int		 cmd_find_from_window(struct cmd_find_state *, struct window *);
 | 
					int		 cmd_find_from_window(struct cmd_find_state *, struct window *);
 | 
				
			||||||
int		 cmd_find_from_pane(struct cmd_find_state *,
 | 
					int		 cmd_find_from_pane(struct cmd_find_state *,
 | 
				
			||||||
		     struct window_pane *);
 | 
							     struct window_pane *);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user