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

Diff for /src/usr.bin/tmux/cmd-detach-client.c between version 1.34 and 1.35

version 1.34, 2020/04/13 10:59:58 version 1.35, 2020/04/13 20:51:57
Line 39 
Line 39 
   
         .source = { 's', CMD_FIND_SESSION, CMD_FIND_CANFAIL },          .source = { 's', CMD_FIND_SESSION, CMD_FIND_CANFAIL },
   
         .flags = CMD_READONLY,          .flags = CMD_READONLY|CMD_CLIENT_TFLAG,
         .exec = cmd_detach_client_exec          .exec = cmd_detach_client_exec
 };  };
   
Line 50 
Line 50 
         .args = { "t:", 0, 0 },          .args = { "t:", 0, 0 },
         .usage = CMD_TARGET_CLIENT_USAGE,          .usage = CMD_TARGET_CLIENT_USAGE,
   
         .flags = 0,          .flags = CMD_CLIENT_TFLAG,
         .exec = cmd_detach_client_exec          .exec = cmd_detach_client_exec
 };  };
   
Line 59 
Line 59 
 {  {
         struct args             *args = cmd_get_args(self);          struct args             *args = cmd_get_args(self);
         struct cmd_find_state   *source = cmdq_get_source(item);          struct cmd_find_state   *source = cmdq_get_source(item);
         struct client           *c, *cloop;          struct client           *tc = cmdq_get_target_client(item), *loop;
         struct session          *s;          struct session          *s;
         enum msgtype             msgtype;          enum msgtype             msgtype;
         const char              *cmd = args_get(args, 'E');          const char              *cmd = args_get(args, 'E');
   
         if ((c = cmd_find_client(item, args_get(args, 't'), 0)) == NULL)  
                 return (CMD_RETURN_ERROR);  
   
         if (cmd_get_entry(self) == &cmd_suspend_client_entry) {          if (cmd_get_entry(self) == &cmd_suspend_client_entry) {
                 server_client_suspend(c);                  server_client_suspend(tc);
                 return (CMD_RETURN_NORMAL);                  return (CMD_RETURN_NORMAL);
         }          }
   
Line 81 
Line 78 
                 s = source->s;                  s = source->s;
                 if (s == NULL)                  if (s == NULL)
                         return (CMD_RETURN_NORMAL);                          return (CMD_RETURN_NORMAL);
                 TAILQ_FOREACH(cloop, &clients, entry) {                  TAILQ_FOREACH(loop, &clients, entry) {
                         if (cloop->session == s) {                          if (loop->session == s) {
                                 if (cmd != NULL)                                  if (cmd != NULL)
                                         server_client_exec(cloop, cmd);                                          server_client_exec(loop, cmd);
                                 else                                  else
                                         server_client_detach(cloop, msgtype);                                          server_client_detach(loop, msgtype);
                         }                          }
                 }                  }
                 return (CMD_RETURN_STOP);                  return (CMD_RETURN_STOP);
         }          }
   
         if (args_has(args, 'a')) {          if (args_has(args, 'a')) {
                 TAILQ_FOREACH(cloop, &clients, entry) {                  TAILQ_FOREACH(loop, &clients, entry) {
                         if (cloop->session != NULL && cloop != c) {                          if (loop->session != NULL && loop != tc) {
                                 if (cmd != NULL)                                  if (cmd != NULL)
                                         server_client_exec(cloop, cmd);                                          server_client_exec(loop, cmd);
                                 else                                  else
                                         server_client_detach(cloop, msgtype);                                          server_client_detach(loop, msgtype);
                         }                          }
                 }                  }
                 return (CMD_RETURN_NORMAL);                  return (CMD_RETURN_NORMAL);
         }          }
   
         if (cmd != NULL)          if (cmd != NULL)
                 server_client_exec(c, cmd);                  server_client_exec(tc, cmd);
         else          else
                 server_client_detach(c, msgtype);                  server_client_detach(tc, msgtype);
         return (CMD_RETURN_STOP);          return (CMD_RETURN_STOP);
 }  }

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35