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

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

version 1.11, 2012/07/10 11:53:01 version 1.12, 2012/07/11 07:10:15
Line 29 
Line 29 
  * Join or move a pane into another (like split/swap/kill).   * Join or move a pane into another (like split/swap/kill).
  */   */
   
 void    cmd_join_pane_key_binding(struct cmd *, int);  void             cmd_join_pane_key_binding(struct cmd *, int);
 int     cmd_join_pane_exec(struct cmd *, struct cmd_ctx *);  enum cmd_retval  cmd_join_pane_exec(struct cmd *, struct cmd_ctx *);
   
 int     join_pane(struct cmd *, struct cmd_ctx *, int);  enum cmd_retval  join_pane(struct cmd *, struct cmd_ctx *, int);
   
 const struct cmd_entry cmd_join_pane_entry = {  const struct cmd_entry cmd_join_pane_entry = {
         "join-pane", "joinp",          "join-pane", "joinp",
Line 68 
Line 68 
         }          }
 }  }
   
 int  enum cmd_retval
 cmd_join_pane_exec(struct cmd *self, struct cmd_ctx *ctx)  cmd_join_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
 {  {
         return (join_pane(self, ctx, self->entry == &cmd_join_pane_entry));          return (join_pane(self, ctx, self->entry == &cmd_join_pane_entry));
 }  }
   
 int  enum cmd_retval
 join_pane(struct cmd *self, struct cmd_ctx *ctx, int not_same_window)  join_pane(struct cmd *self, struct cmd_ctx *ctx, int not_same_window)
 {  {
         struct args             *args = self->args;          struct args             *args = self->args;
Line 89 
Line 89 
   
         dst_wl = cmd_find_pane(ctx, args_get(args, 't'), &dst_s, &dst_wp);          dst_wl = cmd_find_pane(ctx, args_get(args, 't'), &dst_s, &dst_wp);
         if (dst_wl == NULL)          if (dst_wl == NULL)
                 return (-1);                  return (CMD_RETURN_ERROR);
         dst_w = dst_wl->window;          dst_w = dst_wl->window;
         dst_idx = dst_wl->idx;          dst_idx = dst_wl->idx;
   
         src_wl = cmd_find_pane(ctx, args_get(args, 's'), NULL, &src_wp);          src_wl = cmd_find_pane(ctx, args_get(args, 's'), NULL, &src_wp);
         if (src_wl == NULL)          if (src_wl == NULL)
                 return (-1);                  return (CMD_RETURN_ERROR);
         src_w = src_wl->window;          src_w = src_wl->window;
   
         if (not_same_window && src_w == dst_w) {          if (not_same_window && src_w == dst_w) {
                 ctx->error(ctx, "can't join a pane to its own window");                  ctx->error(ctx, "can't join a pane to its own window");
                 return (-1);                  return (CMD_RETURN_ERROR);
         }          }
         if (!not_same_window && src_wp == dst_wp) {          if (!not_same_window && src_wp == dst_wp) {
                 ctx->error(ctx, "source and target panes must be different");                  ctx->error(ctx, "source and target panes must be different");
                 return (-1);                  return (CMD_RETURN_ERROR);
         }          }
   
         type = LAYOUT_TOPBOTTOM;          type = LAYOUT_TOPBOTTOM;
Line 117 
Line 117 
                 if (cause != NULL) {                  if (cause != NULL) {
                         ctx->error(ctx, "size %s", cause);                          ctx->error(ctx, "size %s", cause);
                         free(cause);                          free(cause);
                         return (-1);                          return (CMD_RETURN_ERROR);
                 }                  }
         } else if (args_has(args, 'p')) {          } else if (args_has(args, 'p')) {
                 percentage = args_strtonum(args, 'p', 0, 100, &cause);                  percentage = args_strtonum(args, 'p', 0, 100, &cause);
                 if (cause != NULL) {                  if (cause != NULL) {
                         ctx->error(ctx, "percentage %s", cause);                          ctx->error(ctx, "percentage %s", cause);
                         free(cause);                          free(cause);
                         return (-1);                          return (CMD_RETURN_ERROR);
                 }                  }
                 if (type == LAYOUT_TOPBOTTOM)                  if (type == LAYOUT_TOPBOTTOM)
                         size = (dst_wp->sy * percentage) / 100;                          size = (dst_wp->sy * percentage) / 100;
Line 134 
Line 134 
         lc = layout_split_pane(dst_wp, type, size, args_has(args, 'b'));          lc = layout_split_pane(dst_wp, type, size, args_has(args, 'b'));
         if (lc == NULL) {          if (lc == NULL) {
                 ctx->error(ctx, "create pane failed: pane too small");                  ctx->error(ctx, "create pane failed: pane too small");
                 return (-1);                  return (CMD_RETURN_ERROR);
         }          }
   
         layout_close_pane(src_wp);          layout_close_pane(src_wp);
Line 168 
Line 168 
                 server_status_session(dst_s);                  server_status_session(dst_s);
   
         notify_window_layout_changed(dst_w);          notify_window_layout_changed(dst_w);
         return (0);          return (CMD_RETURN_NORMAL);
 }  }

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