diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-07-11 07:10:16 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-07-11 07:10:16 +0000 |
commit | 156a018a1068e24b3e4fe3c282d9f7c23218f83d (patch) | |
tree | d810dc12ac531587df2b51a4c4a39e577eb803d0 /usr.bin/tmux/cmd-set-option.c | |
parent | 5fbceaea80d4bc47fc3ffb9f184c6b478e3b16d1 (diff) |
Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
Diffstat (limited to 'usr.bin/tmux/cmd-set-option.c')
-rw-r--r-- | usr.bin/tmux/cmd-set-option.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/usr.bin/tmux/cmd-set-option.c b/usr.bin/tmux/cmd-set-option.c index 265f12adefd..047dec0341c 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.56 2012/07/10 11:53:01 nicm Exp $ */ +/* $OpenBSD: cmd-set-option.c,v 1.57 2012/07/11 07:10:15 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -27,7 +27,7 @@ * Set an option. */ -int cmd_set_option_exec(struct cmd *, struct cmd_ctx *); +enum cmd_retval cmd_set_option_exec(struct cmd *, struct cmd_ctx *); int cmd_set_option_unset(struct cmd *, struct cmd_ctx *, const struct options_table_entry *, struct options *, @@ -78,7 +78,7 @@ const struct cmd_entry cmd_set_window_option_entry = { cmd_set_option_exec }; -int +enum cmd_retval cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) { struct args *args = self->args; @@ -95,7 +95,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) optstr = args->argv[0]; if (*optstr == '\0') { ctx->error(ctx, "invalid option"); - return (-1); + return (CMD_RETURN_ERROR); } if (args->argc < 2) valstr = NULL; @@ -106,11 +106,11 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) table = oe = NULL; if (options_table_find(optstr, &table, &oe) != 0) { ctx->error(ctx, "ambiguous option: %s", optstr); - return (-1); + return (CMD_RETURN_ERROR); } if (oe == NULL) { ctx->error(ctx, "unknown option: %s", optstr); - return (-1); + return (CMD_RETURN_ERROR); } /* Work out the tree from the table. */ @@ -122,7 +122,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) else { wl = cmd_find_window(ctx, args_get(args, 't'), NULL); if (wl == NULL) - return (-1); + return (CMD_RETURN_ERROR); oo = &wl->window->options; } } else if (table == session_options_table) { @@ -131,21 +131,21 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) else { s = cmd_find_session(ctx, args_get(args, 't'), 0); if (s == NULL) - return (-1); + return (CMD_RETURN_ERROR); oo = &s->options; } } else { ctx->error(ctx, "unknown table"); - return (-1); + return (CMD_RETURN_ERROR); } /* Unset or set the option. */ if (args_has(args, 'u')) { if (cmd_set_option_unset(self, ctx, oe, oo, valstr) != 0) - return (-1); + return (CMD_RETURN_ERROR); } else { if (cmd_set_option_set(self, ctx, oe, oo, valstr) != 0) - return (-1); + return (CMD_RETURN_ERROR); } /* Start or stop timers when automatic-rename changed. */ @@ -168,7 +168,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) server_redraw_client(c); } - return (0); + return (CMD_RETURN_NORMAL); } /* Unset an option. */ |