[BACK]Return to cmd-find-window.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-find-window.c between version 1.6 and 1.7

version 1.6, 2009/11/13 19:53:29 version 1.7, 2010/12/20 00:03:55
Line 30 
Line 30 
 int     cmd_find_window_exec(struct cmd *, struct cmd_ctx *);  int     cmd_find_window_exec(struct cmd *, struct cmd_ctx *);
   
 void    cmd_find_window_callback(void *, int);  void    cmd_find_window_callback(void *, int);
   void    cmd_find_window_free(void *);
   
 const struct cmd_entry cmd_find_window_entry = {  const struct cmd_entry cmd_find_window_entry = {
         "find-window", "findw",          "find-window", "findw",
Line 43 
Line 44 
 };  };
   
 struct cmd_find_window_data {  struct cmd_find_window_data {
         u_int   session;          struct session  *session;
 };  };
   
 int  int
Line 134 
Line 135 
         }          }
   
         cdata = xmalloc(sizeof *cdata);          cdata = xmalloc(sizeof *cdata);
         if (session_index(s, &cdata->session) != 0)          cdata->session = s;
                 fatalx("session not found");          cdata->session->references++;
   
         window_choose_ready(          window_choose_ready(wl->window->active,
             wl->window->active, 0, cmd_find_window_callback, xfree, cdata);              0, cmd_find_window_callback, cmd_find_window_free, cdata);
   
 out:  out:
         ARRAY_FREE(&list_idx);          ARRAY_FREE(&list_idx);
Line 151 
Line 152 
 cmd_find_window_callback(void *data, int idx)  cmd_find_window_callback(void *data, int idx)
 {  {
         struct cmd_find_window_data     *cdata = data;          struct cmd_find_window_data     *cdata = data;
         struct session                  *s;          struct session                  *s = cdata->session;
   
         if (idx != -1 && cdata->session <= ARRAY_LENGTH(&sessions) - 1) {          if (idx == -1)
                 s = ARRAY_ITEM(&sessions, cdata->session);                  return;
                 if (s != NULL && session_select(s, idx) == 0)          if (!session_alive(s))
                         server_redraw_session(s);                  return;
   
           if (session_select(s, idx) == 0) {
                   server_redraw_session(s);
                 recalculate_sizes();                  recalculate_sizes();
         }          }
   }
   
   void
   cmd_find_window_free(void *data)
   {
           struct cmd_find_window_data     *cdata = data;
   
           cdata->session->references--;
           xfree(cdata);
 }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7