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

Diff for /src/usr.bin/tmux/cmd-switch-client.c between version 1.64 and 1.65

version 1.64, 2020/04/13 14:46:04 version 1.65, 2020/04/13 20:51:57
Line 40 
Line 40 
   
         /* -t is special */          /* -t is special */
   
         .flags = CMD_READONLY,          .flags = CMD_READONLY|CMD_CLIENT_CFLAG,
         .exec = cmd_switch_client_exec          .exec = cmd_switch_client_exec
 };  };
   
Line 53 
Line 53 
         const char              *tflag = args_get(args, 't');          const char              *tflag = args_get(args, 't');
         enum cmd_find_type       type;          enum cmd_find_type       type;
         int                      flags;          int                      flags;
         struct client           *c;          struct client           *tc = cmdq_get_target_client(item);
         struct session          *s;          struct session          *s;
         struct winlink          *wl;          struct winlink          *wl;
         struct window           *w;          struct window           *w;
Line 61 
Line 61 
         const char              *tablename;          const char              *tablename;
         struct key_table        *table;          struct key_table        *table;
   
         if ((c = cmd_find_client(item, args_get(args, 'c'), 0)) == NULL)  
                 return (CMD_RETURN_ERROR);  
   
         if (tflag != NULL && tflag[strcspn(tflag, ":.%")] != '\0') {          if (tflag != NULL && tflag[strcspn(tflag, ":.%")] != '\0') {
                 type = CMD_FIND_PANE;                  type = CMD_FIND_PANE;
                 flags = 0;                  flags = 0;
Line 78 
Line 75 
         wp = target.wp;          wp = target.wp;
   
         if (args_has(args, 'r'))          if (args_has(args, 'r'))
                 c->flags ^= CLIENT_READONLY;                  tc->flags ^= CLIENT_READONLY;
   
         tablename = args_get(args, 'T');          tablename = args_get(args, 'T');
         if (tablename != NULL) {          if (tablename != NULL) {
Line 88 
Line 85 
                         return (CMD_RETURN_ERROR);                          return (CMD_RETURN_ERROR);
                 }                  }
                 table->references++;                  table->references++;
                 key_bindings_unref_table(c->keytable);                  key_bindings_unref_table(tc->keytable);
                 c->keytable = table;                  tc->keytable = table;
                 return (CMD_RETURN_NORMAL);                  return (CMD_RETURN_NORMAL);
         }          }
   
         if (args_has(args, 'n')) {          if (args_has(args, 'n')) {
                 if ((s = session_next_session(c->session)) == NULL) {                  if ((s = session_next_session(tc->session)) == NULL) {
                         cmdq_error(item, "can't find next session");                          cmdq_error(item, "can't find next session");
                         return (CMD_RETURN_ERROR);                          return (CMD_RETURN_ERROR);
                 }                  }
         } else if (args_has(args, 'p')) {          } else if (args_has(args, 'p')) {
                 if ((s = session_previous_session(c->session)) == NULL) {                  if ((s = session_previous_session(tc->session)) == NULL) {
                         cmdq_error(item, "can't find previous session");                          cmdq_error(item, "can't find previous session");
                         return (CMD_RETURN_ERROR);                          return (CMD_RETURN_ERROR);
                 }                  }
         } else if (args_has(args, 'l')) {          } else if (args_has(args, 'l')) {
                 if (c->last_session != NULL && session_alive(c->last_session))                  if (tc->last_session != NULL && session_alive(tc->last_session))
                         s = c->last_session;                          s = tc->last_session;
                 else                  else
                         s = NULL;                          s = NULL;
                 if (s == NULL) {                  if (s == NULL) {
Line 131 
Line 128 
         }          }
   
         if (!args_has(args, 'E'))          if (!args_has(args, 'E'))
                 environ_update(s->options, c->environ, s->environ);                  environ_update(s->options, tc->environ, s->environ);
   
         if (c->session != NULL && c->session != s)          if (tc->session != NULL && tc->session != s)
                 c->last_session = c->session;                  tc->last_session = tc->session;
         c->session = s;          tc->session = s;
         if (~cmdq_get_flags(item) & CMDQ_STATE_REPEAT)          if (~cmdq_get_flags(item) & CMDQ_STATE_REPEAT)
                 server_client_set_key_table(c, NULL);                  server_client_set_key_table(tc, NULL);
         tty_update_client_offset(c);          tty_update_client_offset(tc);
         status_timer_start(c);          status_timer_start(tc);
         notify_client("client-session-changed", c);          notify_client("client-session-changed", tc);
         session_update_activity(s, NULL);          session_update_activity(s, NULL);
         gettimeofday(&s->last_attached_time, NULL);          gettimeofday(&s->last_attached_time, NULL);
   
         server_check_unattached();          server_check_unattached();
         server_redraw_client(c);          server_redraw_client(tc);
         s->curw->flags &= ~WINLINK_ALERTFLAGS;          s->curw->flags &= ~WINLINK_ALERTFLAGS;
         s->curw->window->latest = c;          s->curw->window->latest = tc;
         recalculate_sizes();          recalculate_sizes();
         alerts_check_session(s);          alerts_check_session(s);
   

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