mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Instead of separate tables for different types of options, give each
option a scope type (server, session, window) in one table.
This commit is contained in:
		| @@ -84,7 +84,7 @@ enum cmd_retval | |||||||
| cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq) | cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq) | ||||||
| { | { | ||||||
| 	struct args				*args = self->args; | 	struct args				*args = self->args; | ||||||
| 	const struct options_table_entry	*table, *oe; | 	const struct options_table_entry	*oe; | ||||||
| 	struct session				*s; | 	struct session				*s; | ||||||
| 	struct winlink				*wl; | 	struct winlink				*wl; | ||||||
| 	struct client				*c; | 	struct client				*c; | ||||||
| @@ -108,8 +108,8 @@ cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq) | |||||||
| 		return (cmd_set_option_user(self, cmdq, optstr, valstr)); | 		return (cmd_set_option_user(self, cmdq, optstr, valstr)); | ||||||
|  |  | ||||||
| 	/* Find the option entry, try each table. */ | 	/* Find the option entry, try each table. */ | ||||||
| 	table = oe = NULL; | 	oe = NULL; | ||||||
| 	if (options_table_find(optstr, &table, &oe) != 0) { | 	if (options_table_find(optstr, &oe) != 0) { | ||||||
| 		if (!args_has(args, 'q')) { | 		if (!args_has(args, 'q')) { | ||||||
| 			cmdq_error(cmdq, "ambiguous option: %s", optstr); | 			cmdq_error(cmdq, "ambiguous option: %s", optstr); | ||||||
| 			return (CMD_RETURN_ERROR); | 			return (CMD_RETURN_ERROR); | ||||||
| @@ -124,10 +124,10 @@ cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq) | |||||||
| 		return (CMD_RETURN_NORMAL); | 		return (CMD_RETURN_NORMAL); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* Work out the tree from the table. */ | 	/* Work out the tree from the scope of the option. */ | ||||||
| 	if (table == server_options_table) | 	if (oe->scope == OPTIONS_TABLE_SERVER) | ||||||
| 		oo = global_options; | 		oo = global_options; | ||||||
| 	else if (table == window_options_table) { | 	else if (oe->scope == OPTIONS_TABLE_WINDOW) { | ||||||
| 		if (args_has(self->args, 'g')) | 		if (args_has(self->args, 'g')) | ||||||
| 			oo = global_w_options; | 			oo = global_w_options; | ||||||
| 		else { | 		else { | ||||||
| @@ -141,7 +141,7 @@ cmd_set_option_exec(struct cmd *self, struct cmd_q *cmdq) | |||||||
| 			} | 			} | ||||||
| 			oo = wl->window->options; | 			oo = wl->window->options; | ||||||
| 		} | 		} | ||||||
| 	} else if (table == session_options_table) { | 	} else if (oe->scope == OPTIONS_TABLE_SESSION) { | ||||||
| 		if (args_has(self->args, 'g')) | 		if (args_has(self->args, 'g')) | ||||||
| 			oo = global_s_options; | 			oo = global_s_options; | ||||||
| 		else { | 		else { | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ enum cmd_retval	 cmd_show_options_exec(struct cmd *, struct cmd_q *); | |||||||
| enum cmd_retval	cmd_show_options_one(struct cmd *, struct cmd_q *, | enum cmd_retval	cmd_show_options_one(struct cmd *, struct cmd_q *, | ||||||
| 		    struct options *, int); | 		    struct options *, int); | ||||||
| enum cmd_retval cmd_show_options_all(struct cmd *, struct cmd_q *, | enum cmd_retval cmd_show_options_all(struct cmd *, struct cmd_q *, | ||||||
| 		    const struct options_table_entry *, struct options *); | 	    	    struct options *, enum options_table_scope); | ||||||
|  |  | ||||||
| const struct cmd_entry cmd_show_options_entry = { | const struct cmd_entry cmd_show_options_entry = { | ||||||
| 	"show-options", "show", | 	"show-options", "show", | ||||||
| @@ -53,19 +53,19 @@ const struct cmd_entry cmd_show_window_options_entry = { | |||||||
| enum cmd_retval | enum cmd_retval | ||||||
| cmd_show_options_exec(struct cmd *self, struct cmd_q *cmdq) | cmd_show_options_exec(struct cmd *self, struct cmd_q *cmdq) | ||||||
| { | { | ||||||
| 	struct args				*args = self->args; | 	struct args		*args = self->args; | ||||||
| 	struct session				*s; | 	struct session		*s; | ||||||
| 	struct winlink				*wl; | 	struct winlink		*wl; | ||||||
| 	const struct options_table_entry	*table; | 	struct options		*oo; | ||||||
| 	struct options				*oo; | 	int			 quiet; | ||||||
| 	int					 quiet; | 	enum options_table_scope scope; | ||||||
|  |  | ||||||
| 	if (args_has(self->args, 's')) { | 	if (args_has(self->args, 's')) { | ||||||
| 		oo = global_options; | 		oo = global_options; | ||||||
| 		table = server_options_table; | 		scope = OPTIONS_TABLE_SERVER; | ||||||
| 	} else if (args_has(self->args, 'w') || | 	} else if (args_has(self->args, 'w') || | ||||||
| 	    self->entry == &cmd_show_window_options_entry) { | 	    self->entry == &cmd_show_window_options_entry) { | ||||||
| 		table = window_options_table; | 		scope = OPTIONS_TABLE_WINDOW; | ||||||
| 		if (args_has(self->args, 'g')) | 		if (args_has(self->args, 'g')) | ||||||
| 			oo = global_w_options; | 			oo = global_w_options; | ||||||
| 		else { | 		else { | ||||||
| @@ -75,7 +75,7 @@ cmd_show_options_exec(struct cmd *self, struct cmd_q *cmdq) | |||||||
| 			oo = wl->window->options; | 			oo = wl->window->options; | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		table = session_options_table; | 		scope = OPTIONS_TABLE_SESSION; | ||||||
| 		if (args_has(self->args, 'g')) | 		if (args_has(self->args, 'g')) | ||||||
| 			oo = global_s_options; | 			oo = global_s_options; | ||||||
| 		else { | 		else { | ||||||
| @@ -88,7 +88,7 @@ cmd_show_options_exec(struct cmd *self, struct cmd_q *cmdq) | |||||||
|  |  | ||||||
| 	quiet = args_has(self->args, 'q'); | 	quiet = args_has(self->args, 'q'); | ||||||
| 	if (args->argc == 0) | 	if (args->argc == 0) | ||||||
| 		return (cmd_show_options_all(self, cmdq, table, oo)); | 		return (cmd_show_options_all(self, cmdq, oo, scope)); | ||||||
| 	else | 	else | ||||||
| 		return (cmd_show_options_one(self, cmdq, oo, quiet)); | 		return (cmd_show_options_one(self, cmdq, oo, quiet)); | ||||||
| } | } | ||||||
| @@ -99,7 +99,7 @@ cmd_show_options_one(struct cmd *self, struct cmd_q *cmdq, | |||||||
| { | { | ||||||
| 	struct args				*args = self->args; | 	struct args				*args = self->args; | ||||||
| 	const char				*name = args->argv[0]; | 	const char				*name = args->argv[0]; | ||||||
| 	const struct options_table_entry	*table, *oe; | 	const struct options_table_entry	*oe; | ||||||
| 	struct options_entry			*o; | 	struct options_entry			*o; | ||||||
| 	const char				*optval; | 	const char				*optval; | ||||||
|  |  | ||||||
| @@ -118,14 +118,14 @@ retry: | |||||||
| 		return (CMD_RETURN_NORMAL); | 		return (CMD_RETURN_NORMAL); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	table = oe = NULL; | 	oe = NULL; | ||||||
| 	if (options_table_find(name, &table, &oe) != 0) { | 	if (options_table_find(name, &oe) != 0) { | ||||||
| 		cmdq_error(cmdq, "ambiguous option: %s", name); | 		cmdq_error(cmdq, "ambiguous option: %s", name); | ||||||
| 		return (CMD_RETURN_ERROR); | 		return (CMD_RETURN_ERROR); | ||||||
| 	} | 	} | ||||||
| 	if (oe == NULL) { | 	if (oe == NULL) { | ||||||
| 		if (quiet) | 		if (quiet) | ||||||
| 		    return (CMD_RETURN_NORMAL); | 			return (CMD_RETURN_NORMAL); | ||||||
| 		cmdq_error(cmdq, "unknown option: %s", name); | 		cmdq_error(cmdq, "unknown option: %s", name); | ||||||
| 		return (CMD_RETURN_ERROR); | 		return (CMD_RETURN_ERROR); | ||||||
| 	} | 	} | ||||||
| @@ -144,12 +144,13 @@ retry: | |||||||
| } | } | ||||||
|  |  | ||||||
| enum cmd_retval | enum cmd_retval | ||||||
| cmd_show_options_all(struct cmd *self, struct cmd_q *cmdq, | cmd_show_options_all(struct cmd *self, struct cmd_q *cmdq, struct options *oo, | ||||||
|     const struct options_table_entry *table, struct options *oo) |     enum options_table_scope scope) | ||||||
| { | { | ||||||
| 	const struct options_table_entry	*oe; | 	const struct options_table_entry	*oe; | ||||||
| 	struct options_entry			*o; | 	struct options_entry			*o; | ||||||
| 	const char				*optval; | 	const char				*optval; | ||||||
|  | 	int					 vflag; | ||||||
|  |  | ||||||
| 	o = options_first(oo); | 	o = options_first(oo); | ||||||
| 	while (o != NULL) { | 	while (o != NULL) { | ||||||
| @@ -162,14 +163,14 @@ cmd_show_options_all(struct cmd *self, struct cmd_q *cmdq, | |||||||
| 		o = options_next(o); | 		o = options_next(o); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for (oe = table; oe->name != NULL; oe++) { | 	vflag = args_has(self->args, 'v'); | ||||||
| 		if (oe->style != NULL) | 	for (oe = options_table; oe->name != NULL; oe++) { | ||||||
|  | 		if (oe->style != NULL || oe->scope != scope) | ||||||
| 			continue; | 			continue; | ||||||
| 		if ((o = options_find1(oo, oe->name)) == NULL) | 		if ((o = options_find1(oo, oe->name)) == NULL) | ||||||
| 			continue; | 			continue; | ||||||
| 		optval = options_table_print_entry(oe, o, | 		optval = options_table_print_entry(oe, o, vflag); | ||||||
| 		    args_has(self->args, 'v')); | 		if (vflag) | ||||||
| 		if (args_has(self->args, 'v')) |  | ||||||
| 			cmdq_print(cmdq, "%s", optval); | 			cmdq_print(cmdq, "%s", optval); | ||||||
| 		else | 		else | ||||||
| 			cmdq_print(cmdq, "%s %s", oe->name, optval); | 			cmdq_print(cmdq, "%s %s", oe->name, optval); | ||||||
|   | |||||||
							
								
								
									
										175
									
								
								options-table.c
									
									
									
									
									
								
							
							
						
						
									
										175
									
								
								options-table.c
									
									
									
									
									
								
							| @@ -53,9 +53,10 @@ const char *options_table_bell_action_list[] = { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| /* Server options. */ | /* Server options. */ | ||||||
| const struct options_table_entry server_options_table[] = { | const struct options_table_entry options_table[] = { | ||||||
| 	{ .name = "buffer-limit", | 	{ .name = "buffer-limit", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .minimum = 1, | 	  .minimum = 1, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 20 | 	  .default_num = 20 | ||||||
| @@ -63,11 +64,13 @@ const struct options_table_entry server_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "default-terminal", | 	{ .name = "default-terminal", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_str = "screen" | 	  .default_str = "screen" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "escape-time", | 	{ .name = "escape-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 500 | 	  .default_num = 500 | ||||||
| @@ -75,21 +78,25 @@ const struct options_table_entry server_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "exit-unattached", | 	{ .name = "exit-unattached", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "focus-events", | 	{ .name = "focus-events", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "history-file", | 	{ .name = "history-file", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_str = "" | 	  .default_str = "" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-limit", | 	{ .name = "message-limit", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 100 | 	  .default_num = 100 | ||||||
| @@ -97,28 +104,27 @@ const struct options_table_entry server_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "quiet", | 	{ .name = "quiet", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "set-clipboard", | 	{ .name = "set-clipboard", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "terminal-overrides", | 	{ .name = "terminal-overrides", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SERVER, | ||||||
| 	  .default_str = "xterm*:XT:Ms=\\E]52;%p1%s;%p2%s\\007" | 	  .default_str = "xterm*:XT:Ms=\\E]52;%p1%s;%p2%s\\007" | ||||||
| 	                 ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007" | 	                 ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007" | ||||||
| 			 ":Ss=\\E[%p1%d q:Se=\\E[2 q,screen*:XT" | 			 ":Ss=\\E[%p1%d q:Se=\\E[2 q,screen*:XT" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = NULL } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* Session options. */ |  | ||||||
| const struct options_table_entry session_options_table[] = { |  | ||||||
| 	{ .name = "assume-paste-time", | 	{ .name = "assume-paste-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 1, | 	  .default_num = 1, | ||||||
| @@ -126,6 +132,7 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "base-index", | 	{ .name = "base-index", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -133,47 +140,56 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "bell-action", | 	{ .name = "bell-action", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .choices = options_table_bell_action_list, | 	  .choices = options_table_bell_action_list, | ||||||
| 	  .default_num = BELL_ANY | 	  .default_num = BELL_ANY | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "bell-on-alert", | 	{ .name = "bell-on-alert", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "default-command", | 	{ .name = "default-command", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "" | 	  .default_str = "" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "default-shell", | 	{ .name = "default-shell", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = _PATH_BSHELL | 	  .default_str = _PATH_BSHELL | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "destroy-unattached", | 	{ .name = "destroy-unattached", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "detach-on-destroy", | 	{ .name = "detach-on-destroy", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "display-panes-active-colour", | 	{ .name = "display-panes-active-colour", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "display-panes-colour", | 	{ .name = "display-panes-colour", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 4 | 	  .default_num = 4 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "display-panes-time", | 	{ .name = "display-panes-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 1, | 	  .minimum = 1, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 1000 | 	  .default_num = 1000 | ||||||
| @@ -181,6 +197,7 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "display-time", | 	{ .name = "display-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 1, | 	  .minimum = 1, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 750 | 	  .default_num = 750 | ||||||
| @@ -188,6 +205,7 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "history-limit", | 	{ .name = "history-limit", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 2000 | 	  .default_num = 2000 | ||||||
| @@ -195,6 +213,7 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "lock-after-time", | 	{ .name = "lock-after-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -202,77 +221,91 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "lock-command", | 	{ .name = "lock-command", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "lock -np" | 	  .default_str = "lock -np" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-attr", | 	{ .name = "message-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "message-style" | 	  .style = "message-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-bg", | 	{ .name = "message-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 3, | 	  .default_num = 3, | ||||||
| 	  .style = "message-style" | 	  .style = "message-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-command-attr", | 	{ .name = "message-command-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "message-command-style" | 	  .style = "message-command-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-command-bg", | 	{ .name = "message-command-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "message-command-style" | 	  .style = "message-command-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-command-fg", | 	{ .name = "message-command-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 3, | 	  .default_num = 3, | ||||||
| 	  .style = "message-command-style" | 	  .style = "message-command-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-command-style", | 	{ .name = "message-command-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "bg=black,fg=yellow" | 	  .default_str = "bg=black,fg=yellow" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-fg", | 	{ .name = "message-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "message-style" | 	  .style = "message-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "message-style", | 	{ .name = "message-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "bg=yellow,fg=black" | 	  .default_str = "bg=yellow,fg=black" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "mouse", | 	{ .name = "mouse", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "prefix", | 	{ .name = "prefix", | ||||||
| 	  .type = OPTIONS_TABLE_KEY, | 	  .type = OPTIONS_TABLE_KEY, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = '\002', | 	  .default_num = '\002', | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "prefix2", | 	{ .name = "prefix2", | ||||||
| 	  .type = OPTIONS_TABLE_KEY, | 	  .type = OPTIONS_TABLE_KEY, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = KEYC_NONE, | 	  .default_num = KEYC_NONE, | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "renumber-windows", | 	{ .name = "renumber-windows", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "repeat-time", | 	{ .name = "repeat-time", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = SHRT_MAX, | 	  .maximum = SHRT_MAX, | ||||||
| 	  .default_num = 500 | 	  .default_num = 500 | ||||||
| @@ -280,44 +313,52 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "set-remain-on-exit", | 	{ .name = "set-remain-on-exit", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "set-titles", | 	{ .name = "set-titles", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "set-titles-string", | 	{ .name = "set-titles-string", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "#S:#I:#W - \"#T\" #{session_alerts}" | 	  .default_str = "#S:#I:#W - \"#T\" #{session_alerts}" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status", | 	{ .name = "status", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-attr", | 	{ .name = "status-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "status-style" | 	  .style = "status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-bg", | 	{ .name = "status-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 2, | 	  .default_num = 2, | ||||||
| 	  .style = "status-style" | 	  .style = "status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-fg", | 	{ .name = "status-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "status-style" | 	  .style = "status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-interval", | 	{ .name = "status-interval", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 15 | 	  .default_num = 15 | ||||||
| @@ -325,41 +366,48 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "status-justify", | 	{ .name = "status-justify", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .choices = options_table_status_justify_list, | 	  .choices = options_table_status_justify_list, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-keys", | 	{ .name = "status-keys", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .choices = options_table_status_keys_list, | 	  .choices = options_table_status_keys_list, | ||||||
| 	  .default_num = MODEKEY_EMACS | 	  .default_num = MODEKEY_EMACS | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-left", | 	{ .name = "status-left", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "[#S] " | 	  .default_str = "[#S] " | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-left-attr", | 	{ .name = "status-left-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "status-left-style" | 	  .style = "status-left-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-left-bg", | 	{ .name = "status-left-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "status-left-style" | 	  .style = "status-left-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-left-fg", | 	{ .name = "status-left-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "status-left-style" | 	  .style = "status-left-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-left-length", | 	{ .name = "status-left-length", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = SHRT_MAX, | 	  .maximum = SHRT_MAX, | ||||||
| 	  .default_num = 10 | 	  .default_num = 10 | ||||||
| @@ -367,40 +415,47 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "status-left-style", | 	{ .name = "status-left-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-position", | 	{ .name = "status-position", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .choices = options_table_status_position_list, | 	  .choices = options_table_status_position_list, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-right", | 	{ .name = "status-right", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = " \"#{=21:pane_title}\" %H:%M %d-%b-%y" | 	  .default_str = " \"#{=21:pane_title}\" %H:%M %d-%b-%y" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-right-attr", | 	{ .name = "status-right-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "status-right-style" | 	  .style = "status-right-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-right-bg", | 	{ .name = "status-right-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "status-right-style" | 	  .style = "status-right-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-right-fg", | 	{ .name = "status-right-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "status-right-style" | 	  .style = "status-right-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-right-length", | 	{ .name = "status-right-length", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = SHRT_MAX, | 	  .maximum = SHRT_MAX, | ||||||
| 	  .default_num = 40 | 	  .default_num = 40 | ||||||
| @@ -408,16 +463,19 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "status-right-style", | 	{ .name = "status-right-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "status-style", | 	{ .name = "status-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "bg=green,fg=black" | 	  .default_str = "bg=green,fg=black" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "update-environment", | 	{ .name = "update-environment", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID " | 	  .default_str = "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID " | ||||||
| 	                 "SSH_CONNECTION WINDOWID XAUTHORITY" | 	                 "SSH_CONNECTION WINDOWID XAUTHORITY" | ||||||
|  |  | ||||||
| @@ -425,68 +483,75 @@ const struct options_table_entry session_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "visual-activity", | 	{ .name = "visual-activity", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "visual-bell", | 	{ .name = "visual-bell", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "visual-silence", | 	{ .name = "visual-silence", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "word-separators", | 	{ .name = "word-separators", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_SESSION, | ||||||
| 	  .default_str = " -_@" | 	  .default_str = " -_@" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = NULL } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* Window options. */ |  | ||||||
| const struct options_table_entry window_options_table[] = { |  | ||||||
| 	{ .name = "aggressive-resize", | 	{ .name = "aggressive-resize", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "allow-rename", | 	{ .name = "allow-rename", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "alternate-screen", | 	{ .name = "alternate-screen", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "automatic-rename", | 	{ .name = "automatic-rename", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "automatic-rename-format", | 	{ .name = "automatic-rename-format", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}" | 	  .default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}" | ||||||
| 	                 "#{?pane_dead,[dead],}" | 	                 "#{?pane_dead,[dead],}" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "clock-mode-colour", | 	{ .name = "clock-mode-colour", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 4 | 	  .default_num = 4 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "clock-mode-style", | 	{ .name = "clock-mode-style", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .choices = options_table_clock_mode_style_list, | 	  .choices = options_table_clock_mode_style_list, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "force-height", | 	{ .name = "force-height", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -494,6 +559,7 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "force-width", | 	{ .name = "force-width", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -501,6 +567,7 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "main-pane-height", | 	{ .name = "main-pane-height", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 1, | 	  .minimum = 1, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 24 | 	  .default_num = 24 | ||||||
| @@ -508,6 +575,7 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "main-pane-width", | 	{ .name = "main-pane-width", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 1, | 	  .minimum = 1, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 80 | 	  .default_num = 80 | ||||||
| @@ -515,40 +583,47 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "mode-attr", | 	{ .name = "mode-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "mode-style" | 	  .style = "mode-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "mode-bg", | 	{ .name = "mode-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 3, | 	  .default_num = 3, | ||||||
| 	  .style = "mode-style" | 	  .style = "mode-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "mode-fg", | 	{ .name = "mode-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "mode-style" | 	  .style = "mode-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "mode-keys", | 	{ .name = "mode-keys", | ||||||
| 	  .type = OPTIONS_TABLE_CHOICE, | 	  .type = OPTIONS_TABLE_CHOICE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .choices = options_table_mode_keys_list, | 	  .choices = options_table_mode_keys_list, | ||||||
| 	  .default_num = MODEKEY_EMACS | 	  .default_num = MODEKEY_EMACS | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "mode-style", | 	{ .name = "mode-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "bg=yellow,fg=black" | 	  .default_str = "bg=yellow,fg=black" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "monitor-activity", | 	{ .name = "monitor-activity", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "monitor-silence", | 	{ .name = "monitor-silence", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -556,6 +631,7 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "other-pane-height", | 	{ .name = "other-pane-height", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -563,6 +639,7 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "other-pane-width", | 	{ .name = "other-pane-width", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = INT_MAX, | 	  .maximum = INT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -570,23 +647,27 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "pane-active-border-bg", | 	{ .name = "pane-active-border-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "pane-active-border-style" | 	  .style = "pane-active-border-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "pane-active-border-fg", | 	{ .name = "pane-active-border-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 2, | 	  .default_num = 2, | ||||||
| 	  .style = "pane-active-border-style" | 	  .style = "pane-active-border-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "pane-active-border-style", | 	{ .name = "pane-active-border-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "fg=green" | 	  .default_str = "fg=green" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "pane-base-index", | 	{ .name = "pane-base-index", | ||||||
| 	  .type = OPTIONS_TABLE_NUMBER, | 	  .type = OPTIONS_TABLE_NUMBER, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .minimum = 0, | 	  .minimum = 0, | ||||||
| 	  .maximum = USHRT_MAX, | 	  .maximum = USHRT_MAX, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| @@ -594,178 +675,210 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| 	{ .name = "pane-border-bg", | 	{ .name = "pane-border-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "pane-border-style" | 	  .style = "pane-border-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "pane-border-fg", | 	{ .name = "pane-border-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "pane-border-style" | 	  .style = "pane-border-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "pane-border-style", | 	{ .name = "pane-border-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "remain-on-exit", | 	{ .name = "remain-on-exit", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "synchronize-panes", | 	{ .name = "synchronize-panes", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-active-style", | 	{ .name = "window-active-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-style", | 	{ .name = "window-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-activity-attr", | 	{ .name = "window-status-activity-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = GRID_ATTR_REVERSE, | 	  .default_num = GRID_ATTR_REVERSE, | ||||||
| 	  .style = "window-status-activity-style" | 	  .style = "window-status-activity-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-activity-bg", | 	{ .name = "window-status-activity-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-activity-style" | 	  .style = "window-status-activity-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-activity-fg", | 	{ .name = "window-status-activity-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-activity-style" | 	  .style = "window-status-activity-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-activity-style", | 	{ .name = "window-status-activity-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "reverse" | 	  .default_str = "reverse" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-attr", | 	{ .name = "window-status-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "window-status-style" | 	  .style = "window-status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-bell-attr", | 	{ .name = "window-status-bell-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = GRID_ATTR_REVERSE, | 	  .default_num = GRID_ATTR_REVERSE, | ||||||
| 	  .style = "window-status-bell-style" | 	  .style = "window-status-bell-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-bell-bg", | 	{ .name = "window-status-bell-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-bell-style" | 	  .style = "window-status-bell-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-bell-fg", | 	{ .name = "window-status-bell-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-bell-style" | 	  .style = "window-status-bell-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-bell-style", | 	{ .name = "window-status-bell-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "reverse" | 	  .default_str = "reverse" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-bg", | 	{ .name = "window-status-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-style" | 	  .style = "window-status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-current-attr", | 	{ .name = "window-status-current-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "window-status-current-style" | 	  .style = "window-status-current-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-current-bg", | 	{ .name = "window-status-current-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-current-style" | 	  .style = "window-status-current-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-current-fg", | 	{ .name = "window-status-current-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-current-style" | 	  .style = "window-status-current-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-current-format", | 	{ .name = "window-status-current-format", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }" | 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-current-style", | 	{ .name = "window-status-current-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-fg", | 	{ .name = "window-status-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-style" | 	  .style = "window-status-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-format", | 	{ .name = "window-status-format", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }" | 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-last-attr", | 	{ .name = "window-status-last-attr", | ||||||
| 	  .type = OPTIONS_TABLE_ATTRIBUTES, | 	  .type = OPTIONS_TABLE_ATTRIBUTES, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0, | 	  .default_num = 0, | ||||||
| 	  .style = "window-status-last-style" | 	  .style = "window-status-last-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-last-bg", | 	{ .name = "window-status-last-bg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-last-style" | 	  .style = "window-status-last-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-last-fg", | 	{ .name = "window-status-last-fg", | ||||||
| 	  .type = OPTIONS_TABLE_COLOUR, | 	  .type = OPTIONS_TABLE_COLOUR, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 8, | 	  .default_num = 8, | ||||||
| 	  .style = "window-status-last-style" | 	  .style = "window-status-last-style" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-last-style", | 	{ .name = "window-status-last-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-separator", | 	{ .name = "window-status-separator", | ||||||
| 	  .type = OPTIONS_TABLE_STRING, | 	  .type = OPTIONS_TABLE_STRING, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = " " | 	  .default_str = " " | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "window-status-style", | 	{ .name = "window-status-style", | ||||||
| 	  .type = OPTIONS_TABLE_STYLE, | 	  .type = OPTIONS_TABLE_STYLE, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_str = "default" | 	  .default_str = "default" | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "wrap-search", | 	{ .name = "wrap-search", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 1 | 	  .default_num = 1 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	{ .name = "xterm-keys", | 	{ .name = "xterm-keys", | ||||||
| 	  .type = OPTIONS_TABLE_FLAG, | 	  .type = OPTIONS_TABLE_FLAG, | ||||||
|  | 	  .scope = OPTIONS_TABLE_WINDOW, | ||||||
| 	  .default_num = 0 | 	  .default_num = 0 | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| @@ -774,12 +887,13 @@ const struct options_table_entry window_options_table[] = { | |||||||
|  |  | ||||||
| /* Populate an options tree from a table. */ | /* Populate an options tree from a table. */ | ||||||
| void | void | ||||||
| options_table_populate_tree( | options_table_populate_tree(enum options_table_scope scope, struct options *oo) | ||||||
|     const struct options_table_entry *table, struct options *oo) |  | ||||||
| { | { | ||||||
| 	const struct options_table_entry	*oe; | 	const struct options_table_entry	*oe; | ||||||
|  |  | ||||||
| 	for (oe = table; oe->name != NULL; oe++) { | 	for (oe = options_table; oe->name != NULL; oe++) { | ||||||
|  | 		if (oe->scope != scope) | ||||||
|  | 			continue; | ||||||
| 		switch (oe->type) { | 		switch (oe->type) { | ||||||
| 		case OPTIONS_TABLE_STRING: | 		case OPTIONS_TABLE_STRING: | ||||||
| 			options_set_string(oo, oe->name, "%s", oe->default_str); | 			options_set_string(oo, oe->name, "%s", oe->default_str); | ||||||
| @@ -845,33 +959,22 @@ options_table_print_entry(const struct options_table_entry *oe, | |||||||
|  |  | ||||||
| /* Find an option. */ | /* Find an option. */ | ||||||
| int | int | ||||||
| options_table_find( | options_table_find(const char *optstr, const struct options_table_entry **oe) | ||||||
|     const char *optstr, const struct options_table_entry **table, |  | ||||||
|     const struct options_table_entry **oe) |  | ||||||
| { | { | ||||||
| 	static const struct options_table_entry	*tables[] = { |  | ||||||
| 		server_options_table, |  | ||||||
| 		window_options_table, |  | ||||||
| 		session_options_table |  | ||||||
| 	}; |  | ||||||
| 	const struct options_table_entry	*oe_loop; | 	const struct options_table_entry	*oe_loop; | ||||||
| 	u_int					 i; |  | ||||||
|  |  | ||||||
| 	for (i = 0; i < nitems(tables); i++) { | 	for (oe_loop = options_table; oe_loop->name != NULL; oe_loop++) { | ||||||
| 		for (oe_loop = tables[i]; oe_loop->name != NULL; oe_loop++) { | 		if (strncmp(oe_loop->name, optstr, strlen(optstr)) != 0) | ||||||
| 			if (strncmp(oe_loop->name, optstr, strlen(optstr)) != 0) | 			continue; | ||||||
| 				continue; |  | ||||||
|  |  | ||||||
| 			/* If already found, ambiguous. */ | 		/* If already found, ambiguous. */ | ||||||
| 			if (*oe != NULL) | 		if (*oe != NULL) | ||||||
| 				return (-1); | 			return (-1); | ||||||
| 			*oe = oe_loop; | 		*oe = oe_loop; | ||||||
| 			*table = tables[i]; |  | ||||||
|  |  | ||||||
| 			/* Bail now if an exact match. */ | 		/* Bail now if an exact match. */ | ||||||
| 			if (strcmp((*oe)->name, optstr) == 0) | 		if (strcmp(oe_loop->name, optstr) == 0) | ||||||
| 				break; | 			break; | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 	return (0); | 	return (0); | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								status.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								status.c
									
									
									
									
									
								
							| @@ -1205,19 +1205,7 @@ status_prompt_complete_list(u_int *size, const char *s) | |||||||
| 			list[(*size)++] = (*cmdent)->name; | 			list[(*size)++] = (*cmdent)->name; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	for (oe = server_options_table; oe->name != NULL; oe++) { | 	for (oe = options_table; oe->name != NULL; oe++) { | ||||||
| 		if (strncmp(oe->name, s, strlen(s)) == 0) { |  | ||||||
| 			list = xreallocarray(list, (*size) + 1, sizeof *list); |  | ||||||
| 			list[(*size)++] = oe->name; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for (oe = session_options_table; oe->name != NULL; oe++) { |  | ||||||
| 		if (strncmp(oe->name, s, strlen(s)) == 0) { |  | ||||||
| 			list = xreallocarray(list, (*size) + 1, sizeof *list); |  | ||||||
| 			list[(*size)++] = oe->name; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for (oe = window_options_table; oe->name != NULL; oe++) { |  | ||||||
| 		if (strncmp(oe->name, s, strlen(s)) == 0) { | 		if (strncmp(oe->name, s, strlen(s)) == 0) { | ||||||
| 			list = xreallocarray(list, (*size) + 1, sizeof *list); | 			list = xreallocarray(list, (*size) + 1, sizeof *list); | ||||||
| 			list[(*size)++] = oe->name; | 			list[(*size)++] = oe->name; | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								tmux.c
									
									
									
									
									
								
							| @@ -288,14 +288,14 @@ main(int argc, char **argv) | |||||||
| 		environ_set(global_environ, "PWD", tmp); | 		environ_set(global_environ, "PWD", tmp); | ||||||
|  |  | ||||||
| 	global_options = options_create(NULL); | 	global_options = options_create(NULL); | ||||||
| 	options_table_populate_tree(server_options_table, global_options); | 	options_table_populate_tree(OPTIONS_TABLE_SERVER, global_options); | ||||||
|  |  | ||||||
| 	global_s_options = options_create(NULL); | 	global_s_options = options_create(NULL); | ||||||
| 	options_table_populate_tree(session_options_table, global_s_options); | 	options_table_populate_tree(OPTIONS_TABLE_SESSION, global_s_options); | ||||||
| 	options_set_string(global_s_options, "default-shell", "%s", getshell()); | 	options_set_string(global_s_options, "default-shell", "%s", getshell()); | ||||||
|  |  | ||||||
| 	global_w_options = options_create(NULL); | 	global_w_options = options_create(NULL); | ||||||
| 	options_table_populate_tree(window_options_table, global_w_options); | 	options_table_populate_tree(OPTIONS_TABLE_WINDOW, global_w_options); | ||||||
|  |  | ||||||
| 	/* Override keys to vi if VISUAL or EDITOR are set. */ | 	/* Override keys to vi if VISUAL or EDITOR are set. */ | ||||||
| 	if ((s = getenv("VISUAL")) != NULL || (s = getenv("EDITOR")) != NULL) { | 	if ((s = getenv("VISUAL")) != NULL || (s = getenv("EDITOR")) != NULL) { | ||||||
|   | |||||||
							
								
								
									
										32
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -1393,19 +1393,25 @@ enum options_table_type { | |||||||
| 	OPTIONS_TABLE_CHOICE, | 	OPTIONS_TABLE_CHOICE, | ||||||
| 	OPTIONS_TABLE_STYLE | 	OPTIONS_TABLE_STYLE | ||||||
| }; | }; | ||||||
|  | enum options_table_scope { | ||||||
|  | 	OPTIONS_TABLE_SERVER, | ||||||
|  | 	OPTIONS_TABLE_SESSION, | ||||||
|  | 	OPTIONS_TABLE_WINDOW, | ||||||
|  | }; | ||||||
|  |  | ||||||
| struct options_table_entry { | struct options_table_entry { | ||||||
| 	const char	       *name; | 	const char		 *name; | ||||||
| 	enum options_table_type	type; | 	enum options_table_type	  type; | ||||||
|  | 	enum options_table_scope  scope; | ||||||
|  |  | ||||||
| 	u_int			minimum; | 	u_int			  minimum; | ||||||
| 	u_int			maximum; | 	u_int			  maximum; | ||||||
| 	const char	      **choices; | 	const char		**choices; | ||||||
|  |  | ||||||
| 	const char	       *default_str; | 	const char		 *default_str; | ||||||
| 	long long		default_num; | 	long long		  default_num; | ||||||
|  |  | ||||||
| 	const char	       *style; | 	const char		 *style; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* Common command usages. */ | /* Common command usages. */ | ||||||
| @@ -1543,15 +1549,11 @@ struct options_entry *options_set_style(struct options *, const char *, | |||||||
| struct grid_cell *options_get_style(struct options *, const char *); | struct grid_cell *options_get_style(struct options *, const char *); | ||||||
|  |  | ||||||
| /* options-table.c */ | /* options-table.c */ | ||||||
| extern const struct options_table_entry server_options_table[]; | extern const struct options_table_entry options_table[]; | ||||||
| extern const struct options_table_entry session_options_table[]; | void	options_table_populate_tree(enum options_table_scope, struct options *); | ||||||
| extern const struct options_table_entry window_options_table[]; |  | ||||||
| void	options_table_populate_tree(const struct options_table_entry *, |  | ||||||
| 	    struct options *); |  | ||||||
| const char *options_table_print_entry(const struct options_table_entry *, | const char *options_table_print_entry(const struct options_table_entry *, | ||||||
| 	    struct options_entry *, int); | 	    struct options_entry *, int); | ||||||
| int	options_table_find(const char *, const struct options_table_entry **, | int	options_table_find(const char *, const struct options_table_entry **); | ||||||
| 	    const struct options_table_entry **); |  | ||||||
|  |  | ||||||
| /* job.c */ | /* job.c */ | ||||||
| extern struct joblist all_jobs; | extern struct joblist all_jobs; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm