summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2016-10-09 07:58:36 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2016-10-09 07:58:36 +0000
commitf58898eeca6190caee6be3fcf00aeec8d21b3734 (patch)
treee973bb146b1e0c1c8653dbfc2ed600fc25ac4149 /usr.bin
parent2b63ee854b0db1cab3300c51af494aa49a0f12e2 (diff)
Handle NULL window or session for user options.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/cmd-set-option.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/usr.bin/tmux/cmd-set-option.c b/usr.bin/tmux/cmd-set-option.c
index faa1bc30851..d3a7de00709 100644
--- a/usr.bin/tmux/cmd-set-option.c
+++ b/usr.bin/tmux/cmd-set-option.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-set-option.c,v 1.97 2016/09/26 09:02:34 nicm Exp $ */
+/* $OpenBSD: cmd-set-option.c,v 1.98 2016/10/09 07:58:35 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -232,6 +232,7 @@ cmd_set_option_user(struct cmd *self, struct cmd_q *cmdq, const char *optstr,
struct winlink *wl = cmdq->state.tflag.wl;
struct options *oo;
struct options_entry *o;
+ const char *target;
if (args_has(args, 's'))
oo = global_options;
@@ -239,12 +240,28 @@ cmd_set_option_user(struct cmd *self, struct cmd_q *cmdq, const char *optstr,
self->entry == &cmd_set_window_option_entry) {
if (args_has(self->args, 'g'))
oo = global_w_options;
- else
+ else if (wl == NULL) {
+ target = args_get(args, 't');
+ if (target != NULL) {
+ cmdq_error(cmdq, "no such window: %s",
+ target);
+ } else
+ cmdq_error(cmdq, "no current window");
+ return (CMD_RETURN_ERROR);
+ } else
oo = wl->window->options;
} else {
if (args_has(self->args, 'g'))
oo = global_s_options;
- else
+ else if (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);
+ } else
oo = s->options;
}