mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:37:12 +00:00
Make client -c and -t handling common in cmd-queue.c and try to be
clearer about whether the client is the target client (must have a session) or not.
This commit is contained in:
@ -67,12 +67,12 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
|
||||
struct cmd_if_shell_data *cdata;
|
||||
char *shellcmd, *cmd, *error;
|
||||
const char *file;
|
||||
struct client *c = cmd_find_client(item, NULL, 1);
|
||||
struct client *tc = cmdq_get_target_client(item);
|
||||
struct session *s = target->s;
|
||||
struct cmd_parse_input pi;
|
||||
enum cmd_parse_status status;
|
||||
|
||||
shellcmd = format_single_from_target(item, args->argv[0], c);
|
||||
shellcmd = format_single_from_target(item, args->argv[0]);
|
||||
if (args_has(args, 'F')) {
|
||||
if (*shellcmd != '0' && *shellcmd != '\0')
|
||||
cmd = args->argv[1];
|
||||
@ -87,7 +87,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
|
||||
memset(&pi, 0, sizeof pi);
|
||||
cmd_get_source(self, &pi.file, &pi.line);
|
||||
pi.item = item;
|
||||
pi.c = c;
|
||||
pi.c = tc;
|
||||
cmd_find_copy_state(&pi.fs, target);
|
||||
|
||||
status = cmd_parse_and_insert(cmd, &pi, item, state, &error);
|
||||
@ -110,7 +110,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
|
||||
if (!args_has(args, 'b'))
|
||||
cdata->client = cmdq_get_client(item);
|
||||
else
|
||||
cdata->client = c;
|
||||
cdata->client = tc;
|
||||
if (cdata->client != NULL)
|
||||
cdata->client->references++;
|
||||
|
||||
@ -123,7 +123,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
|
||||
cmd_get_source(self, &file, &cdata->input.line);
|
||||
if (file != NULL)
|
||||
cdata->input.file = xstrdup(file);
|
||||
cdata->input.c = c;
|
||||
cdata->input.c = tc;
|
||||
if (cdata->input.c != NULL)
|
||||
cdata->input.c->references++;
|
||||
cmd_find_copy_state(&cdata->input.fs, target);
|
||||
|
Reference in New Issue
Block a user