[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.20 and 1.21

version 1.20, 2012/10/25 11:26:47 version 1.21, 2013/03/21 16:08:24
Line 31 
Line 31 
 enum cmd_retval  cmd_find_window_exec(struct cmd *, struct cmd_ctx *);  enum cmd_retval  cmd_find_window_exec(struct cmd *, struct cmd_ctx *);
   
 void    cmd_find_window_callback(struct window_choose_data *);  void    cmd_find_window_callback(struct window_choose_data *);
 void    cmd_find_window_free(struct window_choose_data *);  
   
 /* Flags for determining matching behavior. */  /* Flags for determining matching behavior. */
 #define CMD_FIND_WINDOW_BY_TITLE   0x1  #define CMD_FIND_WINDOW_BY_TITLE   0x1
Line 131 
Line 130 
 cmd_find_window_exec(struct cmd *self, struct cmd_ctx *ctx)  cmd_find_window_exec(struct cmd *self, struct cmd_ctx *ctx)
 {  {
         struct args                     *args = self->args;          struct args                     *args = self->args;
           struct client                   *c;
         struct window_choose_data       *cdata;          struct window_choose_data       *cdata;
         struct session                  *s;          struct session                  *s;
         struct winlink                  *wl, *wm;          struct winlink                  *wl, *wm;
Line 143 
Line 143 
                 ctx->error(ctx, "must be run interactively");                  ctx->error(ctx, "must be run interactively");
                 return (CMD_RETURN_ERROR);                  return (CMD_RETURN_ERROR);
         }          }
         s = ctx->curclient->session;          c = ctx->curclient;
           s = c->session;
   
         if ((wl = cmd_find_window(ctx, args_get(args, 't'), NULL)) == NULL)          if ((wl = cmd_find_window(ctx, args_get(args, 't'), NULL)) == NULL)
                 return (CMD_RETURN_ERROR);                  return (CMD_RETURN_ERROR);
Line 180 
Line 181 
         for (i = 0; i < ARRAY_LENGTH(&find_list); i++) {          for (i = 0; i < ARRAY_LENGTH(&find_list); i++) {
                 wm = ARRAY_ITEM(&find_list, i).wl;                  wm = ARRAY_ITEM(&find_list, i).wl;
   
                 cdata = window_choose_data_create(ctx);                  cdata = window_choose_data_create(TREE_OTHER, c, c->session);
                 cdata->idx = wm->idx;                  cdata->idx = wm->idx;
                 cdata->client->references++;  
                 cdata->wl = wm;                  cdata->wl = wm;
   
                 cdata->ft_template = xstrdup(template);                  cdata->ft_template = xstrdup(template);
Line 198 
Line 198 
                 window_choose_add(wl->window->active, cdata);                  window_choose_add(wl->window->active, cdata);
         }          }
   
         window_choose_ready(wl->window->active,          window_choose_ready(wl->window->active, 0, cmd_find_window_callback,
             0, cmd_find_window_callback, cmd_find_window_free);              NULL);
   
 out:  out:
         ARRAY_FREE(&find_list);          ARRAY_FREE(&find_list);
Line 215 
Line 215 
         if (cdata == NULL)          if (cdata == NULL)
                 return;                  return;
   
         s = cdata->session;          s = cdata->start_session;
         if (!session_alive(s))          if (!session_alive(s))
                 return;                  return;
   
Line 227 
Line 227 
                 server_redraw_session(s);                  server_redraw_session(s);
                 recalculate_sizes();                  recalculate_sizes();
         }          }
 }  
   
 void  
 cmd_find_window_free(struct window_choose_data *cdata)  
 {  
         if (cdata == NULL)  
                 return;  
   
         cdata->session->references--;  
   
         free(cdata->ft_template);  
         format_free(cdata->ft);  
         free(cdata);  
 }  }

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21