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

Diff for /src/usr.bin/tmux/cmd-select-pane.c between version 1.10 and 1.11

version 1.10, 2010/03/22 19:07:52 version 1.11, 2011/01/04 00:42:47
Line 24 
Line 24 
  * Select pane.   * Select pane.
  */   */
   
 void    cmd_select_pane_init(struct cmd *, int);  void    cmd_select_pane_key_binding(struct cmd *, int);
 int     cmd_select_pane_exec(struct cmd *, struct cmd_ctx *);  int     cmd_select_pane_exec(struct cmd *, struct cmd_ctx *);
   
 const struct cmd_entry cmd_select_pane_entry = {  const struct cmd_entry cmd_select_pane_entry = {
         "select-pane", "selectp",          "select-pane", "selectp",
           "DLRt:U", 0, 0,
         "[-DLRU] " CMD_TARGET_PANE_USAGE,          "[-DLRU] " CMD_TARGET_PANE_USAGE,
         0, "DLRU",          0,
         cmd_select_pane_init,          cmd_select_pane_key_binding,
         cmd_target_parse,          NULL,
         cmd_select_pane_exec,          cmd_select_pane_exec
         cmd_target_free,  
         cmd_target_print  
 };  };
   
 void  void
 cmd_select_pane_init(struct cmd *self, int key)  cmd_select_pane_key_binding(struct cmd *self, int key)
 {  {
         struct cmd_target_data  *data;          self->args = args_create(0);
   
         cmd_target_init(self, key);  
         data = self->data;  
   
         if (key == KEYC_UP)          if (key == KEYC_UP)
                 cmd_set_flag(&data->chflags, 'U');                  args_set(self->args, 'U', NULL);
         if (key == KEYC_DOWN)          if (key == KEYC_DOWN)
                 cmd_set_flag(&data->chflags, 'D');                  args_set(self->args, 'D', NULL);
         if (key == KEYC_LEFT)          if (key == KEYC_LEFT)
                 cmd_set_flag(&data->chflags, 'L');                  args_set(self->args, 'L', NULL);
         if (key == KEYC_RIGHT)          if (key == KEYC_RIGHT)
                 cmd_set_flag(&data->chflags, 'R');                  args_set(self->args, 'R', NULL);
         if (key == 'o')          if (key == 'o')
                 data->target = xstrdup(":.+");                  args_set(self->args, 't', ":.+");
 }  }
   
 int  int
 cmd_select_pane_exec(struct cmd *self, struct cmd_ctx *ctx)  cmd_select_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
 {  {
         struct cmd_target_data  *data = self->data;          struct args             *args = self->args;
         struct winlink          *wl;          struct winlink          *wl;
         struct window_pane      *wp;          struct window_pane      *wp;
   
         if ((wl = cmd_find_pane(ctx, data->target, NULL, &wp)) == NULL)          if ((wl = cmd_find_pane(ctx, args_get(args, 't'), NULL, &wp)) == NULL)
                 return (-1);                  return (-1);
   
         if (!window_pane_visible(wp)) {          if (!window_pane_visible(wp)) {
                 ctx->error(ctx, "pane not visible: %s", data->target);                  ctx->error(ctx, "pane not visible");
                 return (-1);                  return (-1);
         }          }
   
         if (cmd_check_flag(data->chflags, 'L'))          if (args_has(self->args, 'L'))
                 wp = window_pane_find_left(wp);                  wp = window_pane_find_left(wp);
         else if (cmd_check_flag(data->chflags, 'R'))          else if (args_has(self->args, 'R'))
                 wp = window_pane_find_right(wp);                  wp = window_pane_find_right(wp);
         else if (cmd_check_flag(data->chflags, 'U'))          else if (args_has(self->args, 'U'))
                 wp = window_pane_find_up(wp);                  wp = window_pane_find_up(wp);
         else if (cmd_check_flag(data->chflags, 'D'))          else if (args_has(self->args, 'D'))
                 wp = window_pane_find_down(wp);                  wp = window_pane_find_down(wp);
         if (wp == NULL) {          if (wp == NULL) {
                 ctx->error(ctx, "pane not found");                  ctx->error(ctx, "pane not found");

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11