Add "server options" which are server-wide and not bound to a session or

window. Set and displayed with "set -s" and "show -s".

Currently the only option is "quiet" (like command-line -q, allowing it to be
set from .tmux.conf), but others will come along.
This commit is contained in:
Nicholas Marriott
2009-12-10 09:16:52 +00:00
parent 6311bd119e
commit a4c9a80dac
8 changed files with 86 additions and 43 deletions

View File

@ -48,8 +48,8 @@ void cmd_set_option_choice(struct cmd_ctx *,
const struct cmd_entry cmd_set_option_entry = {
"set-option", "set",
"[-aguw] [-t target-session|target-window] option [value]",
CMD_ARG12, "aguw",
"[-agsuw] [-t target-session|target-window] option [value]",
CMD_ARG12, "agsuw",
NULL,
cmd_target_parse,
cmd_set_option_exec,
@ -73,6 +73,10 @@ const char *set_option_bell_action_list[] = {
"none", "any", "current", NULL
};
const struct set_option_entry set_option_table[] = {
{ "quiet", SET_OPTION_FLAG, 0, 0, NULL },
};
const struct set_option_entry set_session_option_table[] = {
{ "base-index", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
{ "bell-action", SET_OPTION_CHOICE, 0, 0, set_option_bell_action_list },
@ -172,7 +176,10 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx)
u_int i;
int try_again;
if (cmd_check_flag(data->chflags, 'w')) {
if (cmd_check_flag(data->chflags, 's')) {
oo = &global_options;
table = set_option_table;
} else if (cmd_check_flag(data->chflags, 'w')) {
table = set_window_option_table;
if (cmd_check_flag(data->chflags, 'g'))
oo = &global_w_options;