aboutsummaryrefslogtreecommitdiff
path: root/cmd-if-shell.c
diff options
context:
space:
mode:
authornicm <nicm>2021-08-20 19:50:16 +0000
committernicm <nicm>2021-08-20 19:50:16 +0000
commit5f32b7d9613e9ef3f8198302379a42630323da6a (patch)
tree0a0b488496625e9da5cbc02c5a1271634568ecc3 /cmd-if-shell.c
parentde94a344f61b0e4ef6459c11621be3c3d1683c9e (diff)
downloadrtmux-5f32b7d9613e9ef3f8198302379a42630323da6a.tar.gz
rtmux-5f32b7d9613e9ef3f8198302379a42630323da6a.tar.bz2
rtmux-5f32b7d9613e9ef3f8198302379a42630323da6a.zip
Hide struct args behind a couple of accessor functions.
Diffstat (limited to 'cmd-if-shell.c')
-rw-r--r--cmd-if-shell.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/cmd-if-shell.c b/cmd-if-shell.c
index f4c81074..df06a0b6 100644
--- a/cmd-if-shell.c
+++ b/cmd-if-shell.c
@@ -65,21 +65,20 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
struct cmd_find_state *target = cmdq_get_target(item);
struct cmdq_state *state = cmdq_get_state(item);
struct cmd_if_shell_data *cdata;
- char *shellcmd, *cmd, *error;
- const char *file;
+ char *shellcmd, *error;
+ const char *cmd = NULL, *file;
struct client *tc = cmdq_get_target_client(item);
struct session *s = target->s;
struct cmd_parse_input pi;
enum cmd_parse_status status;
+ u_int count = args_count(args);
- shellcmd = format_single_from_target(item, args->argv[0]);
+ shellcmd = format_single_from_target(item, args_string(args, 0));
if (args_has(args, 'F')) {
if (*shellcmd != '0' && *shellcmd != '\0')
- cmd = args->argv[1];
- else if (args->argc == 3)
- cmd = args->argv[2];
- else
- cmd = NULL;
+ cmd = args_string(args, 1);
+ else if (count == 3)
+ cmd = args_string(args, 2);
free(shellcmd);
if (cmd == NULL)
return (CMD_RETURN_NORMAL);
@@ -101,9 +100,9 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
cdata = xcalloc(1, sizeof *cdata);
- cdata->cmd_if = xstrdup(args->argv[1]);
- if (args->argc == 3)
- cdata->cmd_else = xstrdup(args->argv[2]);
+ cdata->cmd_if = xstrdup(args_string(args, 1));
+ if (count == 3)
+ cdata->cmd_else = xstrdup(args_string(args, 2));
if (!args_has(args, 'b'))
cdata->client = cmdq_get_client(item);