[BACK]Return to server.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/server.c between version 1.154 and 1.155

version 1.154, 2015/11/24 23:01:51 version 1.155, 2015/12/15 00:00:01
Line 41 
Line 41 
  * Main server functions.   * Main server functions.
  */   */
   
 struct clients   clients;  struct clients           clients;
   
 struct tmuxproc *server_proc;  struct tmuxproc         *server_proc;
 int              server_fd;  int                      server_fd;
 int              server_exit;  int                      server_exit;
 struct event     server_ev_accept;  struct event             server_ev_accept;
   
 struct session          *marked_session;  struct cmd_find_state    marked_pane;
 struct winlink          *marked_winlink;  
 struct window           *marked_window;  
 struct window_pane      *marked_window_pane;  
 struct layout_cell      *marked_layout_cell;  
   
 int     server_create_socket(void);  int     server_create_socket(void);
 int     server_loop(void);  int     server_loop(void);
Line 68 
Line 64 
 void  void
 server_set_marked(struct session *s, struct winlink *wl, struct window_pane *wp)  server_set_marked(struct session *s, struct winlink *wl, struct window_pane *wp)
 {  {
         marked_session = s;          cmd_find_clear_state(&marked_pane, NULL, 0);
         marked_winlink = wl;          marked_pane.s = s;
         marked_window = wl->window;          marked_pane.wl = wl;
         marked_window_pane = wp;          marked_pane.w = wl->window;
         marked_layout_cell = wp->layout_cell;          marked_pane.wp = wp;
 }  }
   
 /* Clear marked pane. */  /* Clear marked pane. */
 void  void
 server_clear_marked(void)  server_clear_marked(void)
 {  {
         marked_session = NULL;          cmd_find_clear_state(&marked_pane, NULL, 0);
         marked_winlink = NULL;  
         marked_window = NULL;  
         marked_window_pane = NULL;  
         marked_layout_cell = NULL;  
 }  }
   
 /* Is this the marked pane? */  /* Is this the marked pane? */
Line 92 
Line 84 
 {  {
         if (s == NULL || wl == NULL || wp == NULL)          if (s == NULL || wl == NULL || wp == NULL)
                 return (0);                  return (0);
         if (marked_session != s || marked_winlink != wl)          if (marked_pane.s != s || marked_pane.wl != wl)
                 return (0);                  return (0);
         if (marked_window_pane != wp)          if (marked_pane.wp != wp)
                 return (0);                  return (0);
         return (server_check_marked());          return (server_check_marked());
 }  }
Line 103 
Line 95 
 int  int
 server_check_marked(void)  server_check_marked(void)
 {  {
         struct winlink  *wl;          return (cmd_find_valid_state(&marked_pane));
   
         if (marked_window_pane == NULL)  
                 return (0);  
         if (marked_layout_cell != marked_window_pane->layout_cell)  
                 return (0);  
   
         if (!session_alive(marked_session))  
                 return (0);  
         RB_FOREACH(wl, winlinks, &marked_session->windows) {  
                 if (wl->window == marked_window && wl == marked_winlink)  
                         break;  
         }  
         if (wl == NULL)  
                 return (0);  
   
         if (!window_has_pane(marked_window, marked_window_pane))  
                 return (0);  
         return (window_pane_visible(marked_window_pane));  
 }  }
   
 /* Create server socket. */  /* Create server socket. */

Legend:
Removed from v.1.154  
changed lines
  Added in v.1.155