=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-set-environment.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- src/usr.bin/tmux/cmd-set-environment.c 2016/01/19 15:59:12 1.17 +++ src/usr.bin/tmux/cmd-set-environment.c 2016/03/03 14:15:22 1.18 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-set-environment.c,v 1.17 2016/01/19 15:59:12 nicm Exp $ */ +/* $OpenBSD: cmd-set-environment.c,v 1.18 2016/03/03 14:15:22 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -47,7 +47,7 @@ { struct args *args = self->args; struct environ *env; - const char *name, *value; + const char *name, *value, *target; name = args->argv[0]; if (*name == '\0') { @@ -64,10 +64,19 @@ else value = args->argv[1]; - if (args_has(self->args, 'g') || cmdq->state.tflag.s == NULL) + if (args_has(self->args, 'g')) env = global_environ; - else + else { + if (cmdq->state.tflag.s == NULL) { + target = args_get(args, 't'); + if (target != NULL) + cmdq_error(cmdq, "no such session: %s", target); + else + cmdq_error(cmdq, "no current session"); + return (CMD_RETURN_ERROR); + } env = cmdq->state.tflag.s->environ; + } if (args_has(self->args, 'u')) { if (value != NULL) {