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

Diff for /src/usr.bin/tmux/cmd-new-window.c between version 1.63 and 1.64

version 1.63, 2016/10/16 17:55:14 version 1.64, 2016/10/16 19:04:05
Line 32 
Line 32 
   
 #define NEW_WINDOW_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"  #define NEW_WINDOW_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
   
 static enum cmd_retval  cmd_new_window_exec(struct cmd *, struct cmd_q *);  static enum cmd_retval  cmd_new_window_exec(struct cmd *, struct cmdq_item *);
   
 const struct cmd_entry cmd_new_window_entry = {  const struct cmd_entry cmd_new_window_entry = {
         .name = "new-window",          .name = "new-window",
Line 49 
Line 49 
 };  };
   
 static enum cmd_retval  static enum cmd_retval
 cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq)  cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
 {  {
         struct args             *args = self->args;          struct args             *args = self->args;
         struct session          *s = cmdq->state.tflag.s;          struct session          *s = item->state.tflag.s;
         struct winlink          *wl = cmdq->state.tflag.wl;          struct winlink          *wl = item->state.tflag.wl;
         struct client           *c = cmdq->state.c;          struct client           *c = item->state.c;
         int                      idx = cmdq->state.tflag.idx;          int                      idx = item->state.tflag.idx;
         const char              *cmd, *path, *template, *cwd, *to_free;          const char              *cmd, *path, *template, *cwd, *to_free;
         char                   **argv, *cause, *cp;          char                   **argv, *cause, *cp;
         int                      argc, detached;          int                      argc, detached;
Line 65 
Line 65 
   
         if (args_has(args, 'a')) {          if (args_has(args, 'a')) {
                 if ((idx = winlink_shuffle_up(s, wl)) == -1) {                  if ((idx = winlink_shuffle_up(s, wl)) == -1) {
                         cmdq_error(cmdq, "no free window indexes");                          cmdq_error(item, "no free window indexes");
                         return (CMD_RETURN_ERROR);                          return (CMD_RETURN_ERROR);
                 }                  }
         }          }
Line 86 
Line 86 
         }          }
   
         path = NULL;          path = NULL;
         if (cmdq->client != NULL && cmdq->client->session == NULL)          if (item->client != NULL && item->client->session == NULL)
                 envent = environ_find(cmdq->client->environ, "PATH");                  envent = environ_find(item->client->environ, "PATH");
         else          else
                 envent = environ_find(s->environ, "PATH");                  envent = environ_find(s->environ, "PATH");
         if (envent != NULL)          if (envent != NULL)
Line 95 
Line 95 
   
         to_free = NULL;          to_free = NULL;
         if (args_has(args, 'c')) {          if (args_has(args, 'c')) {
                 ft = format_create(cmdq, 0);                  ft = format_create(item, 0);
                 format_defaults(ft, c, s, NULL, NULL);                  format_defaults(ft, c, s, NULL, NULL);
                 cwd = to_free = format_expand(ft, args_get(args, 'c'));                  cwd = to_free = format_expand(ft, args_get(args, 'c'));
                 format_free(ft);                  format_free(ft);
         } else if (cmdq->client != NULL && cmdq->client->session == NULL)          } else if (item->client != NULL && item->client->session == NULL)
                 cwd = cmdq->client->cwd;                  cwd = item->client->cwd;
         else          else
                 cwd = s->cwd;                  cwd = s->cwd;
   
Line 129 
Line 129 
         wl = session_new(s, args_get(args, 'n'), argc, argv, path, cwd, idx,          wl = session_new(s, args_get(args, 'n'), argc, argv, path, cwd, idx,
                 &cause);                  &cause);
         if (wl == NULL) {          if (wl == NULL) {
                 cmdq_error(cmdq, "create window failed: %s", cause);                  cmdq_error(item, "create window failed: %s", cause);
                 free(cause);                  free(cause);
                 goto error;                  goto error;
         }          }
Line 143 
Line 143 
                 if ((template = args_get(args, 'F')) == NULL)                  if ((template = args_get(args, 'F')) == NULL)
                         template = NEW_WINDOW_TEMPLATE;                          template = NEW_WINDOW_TEMPLATE;
   
                 ft = format_create(cmdq, 0);                  ft = format_create(item, 0);
                 format_defaults(ft, c, s, wl, NULL);                  format_defaults(ft, c, s, wl, NULL);
   
                 cp = format_expand(ft, template);                  cp = format_expand(ft, template);
                 cmdq_print(cmdq, "%s", cp);                  cmdq_print(item, "%s", cp);
                 free(cp);                  free(cp);
   
                 format_free(ft);                  format_free(ft);
Line 157 
Line 157 
                 free((void *)to_free);                  free((void *)to_free);
   
         cmd_find_from_winlink(&fs, s, wl);          cmd_find_from_winlink(&fs, s, wl);
         hooks_insert(s->hooks, cmdq, &fs, "after-new-window");          hooks_insert(s->hooks, item, &fs, "after-new-window");
   
         return (CMD_RETURN_NORMAL);          return (CMD_RETURN_NORMAL);
   

Legend:
Removed from v.1.63  
changed lines
  Added in v.1.64