=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-set-environment.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- src/usr.bin/tmux/cmd-set-environment.c 2020/09/01 09:19:01 1.26 +++ src/usr.bin/tmux/cmd-set-environment.c 2021/08/20 19:50:17 1.27 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-set-environment.c,v 1.26 2020/09/01 09:19:01 nicm Exp $ */ +/* $OpenBSD: cmd-set-environment.c,v 1.27 2021/08/20 19:50:17 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -49,11 +49,11 @@ 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 @@ 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 @@ } out: - free(expand); + free(expanded); return (retval); }