diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-08-20 22:01:46 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-08-20 22:01:46 +0100 |
commit | b0da0cee4d54aa64db0f49eee509a76fd89d6f68 (patch) | |
tree | 1e54ddb0b113708c46e80d342d10be74cdf7b176 /cmd-set-environment.c | |
parent | 944fde7c57c4f3caebb04cfc3943a81ee9729de8 (diff) | |
parent | d589be6c65c7295880bb84cd875baab2f77d5067 (diff) | |
download | rtmux-b0da0cee4d54aa64db0f49eee509a76fd89d6f68.tar.gz rtmux-b0da0cee4d54aa64db0f49eee509a76fd89d6f68.tar.bz2 rtmux-b0da0cee4d54aa64db0f49eee509a76fd89d6f68.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'cmd-set-environment.c')
-rw-r--r-- | cmd-set-environment.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/cmd-set-environment.c b/cmd-set-environment.c index f142df53..e60240a8 100644 --- a/cmd-set-environment.c +++ b/cmd-set-environment.c @@ -49,11 +49,11 @@ cmd_set_environment_exec(struct cmd *self, struct cmdq_item *item) struct args *args = cmd_get_args(self); struct cmd_find_state *target = cmdq_get_target(item); struct environ *env; - const char *name, *value, *tflag; - char *expand = NULL; + const char *name = args_string(args, 0), *value; + const char *tflag; + char *expanded = NULL; enum cmd_retval retval = CMD_RETURN_NORMAL; - name = args->argv[0]; if (*name == '\0') { cmdq_error(item, "empty variable name"); return (CMD_RETURN_ERROR); @@ -63,13 +63,14 @@ cmd_set_environment_exec(struct cmd *self, struct cmdq_item *item) return (CMD_RETURN_ERROR); } - if (args->argc < 2) + if (args_count(args) < 2) value = NULL; - else if (args_has(args, 'F')) - value = expand = format_single_from_target(item, args->argv[1]); else - value = args->argv[1]; - + value = args_string(args, 1); + if (value != NULL && args_has(args, 'F')) { + expanded = format_single_from_target(item, value); + value = expanded; + } if (args_has(args, 'g')) env = global_environ; else { @@ -113,6 +114,6 @@ cmd_set_environment_exec(struct cmd *self, struct cmdq_item *item) } out: - free(expand); + free(expanded); return (retval); } |