version 1.84, 2022/06/02 21:19:32 |
version 1.85, 2023/08/23 08:40:25 |
|
|
.name = "run-shell", |
.name = "run-shell", |
.alias = "run", |
.alias = "run", |
|
|
.args = { "bd:Ct:", 0, 1, cmd_run_shell_args_parse }, |
.args = { "bd:Ct:c:", 0, 2, cmd_run_shell_args_parse }, |
.usage = "[-bC] [-d delay] " CMD_TARGET_PANE_USAGE " [shell-command]", |
.usage = "[-bC] [-c start-directory] [-d delay] " CMD_TARGET_PANE_USAGE |
|
" [shell-command]", |
|
|
.target = { 't', CMD_FIND_PANE, CMD_FIND_CANFAIL }, |
.target = { 't', CMD_FIND_PANE, CMD_FIND_CANFAIL }, |
|
|
|
|
struct args *args = cmd_get_args(self); |
struct args *args = cmd_get_args(self); |
struct cmd_find_state *target = cmdq_get_target(item); |
struct cmd_find_state *target = cmdq_get_target(item); |
struct cmd_run_shell_data *cdata; |
struct cmd_run_shell_data *cdata; |
|
struct client *c = cmdq_get_client(item); |
struct client *tc = cmdq_get_target_client(item); |
struct client *tc = cmdq_get_target_client(item); |
struct session *s = target->s; |
struct session *s = target->s; |
struct window_pane *wp = target->wp; |
struct window_pane *wp = target->wp; |
|
|
cdata->wp_id = -1; |
cdata->wp_id = -1; |
|
|
if (wait) { |
if (wait) { |
cdata->client = cmdq_get_client(item); |
cdata->client = c; |
cdata->item = item; |
cdata->item = item; |
} else { |
} else { |
cdata->client = tc; |
cdata->client = tc; |
|
|
} |
} |
if (cdata->client != NULL) |
if (cdata->client != NULL) |
cdata->client->references++; |
cdata->client->references++; |
|
if (args_has(args, 'c')) |
cdata->cwd = xstrdup(server_client_get_cwd(cmdq_get_client(item), s)); |
cdata->cwd = xstrdup(args_get(args, 'c')); |
|
else |
|
cdata->cwd = xstrdup(server_client_get_cwd(c, s)); |
|
|
cdata->s = s; |
cdata->s = s; |
if (s != NULL) |
if (s != NULL) |