=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-show-environment.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- src/usr.bin/tmux/cmd-show-environment.c 2016/01/19 15:59:12 1.18 +++ src/usr.bin/tmux/cmd-show-environment.c 2016/03/03 14:15:22 1.19 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-show-environment.c,v 1.18 2016/01/19 15:59:12 nicm Exp $ */ +/* $OpenBSD: cmd-show-environment.c,v 1.19 2016/03/03 14:15:22 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -93,11 +93,28 @@ struct args *args = self->args; struct environ *env; struct environ_entry *envent; + const char *target; - if (args_has(self->args, 'g') || cmdq->state.tflag.s == NULL) + if ((target = args_get(args, 't')) != NULL) { + if (cmdq->state.tflag.s == NULL) { + cmdq_error(cmdq, "no such session: %s", target); + return (CMD_RETURN_ERROR); + } + } + + 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->argc != 0) { envent = environ_find(env, args->argv[0]);