summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-01-01 16:51:21 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-01-01 16:51:21 +0000
commit3e8124009f6737c656e260b2f5b459b4ebe1a10c (patch)
treeb726a5db7cbcc8ff5d4b139be15911e46f3217c8 /tmux.c
parenta4515ce138a7c5f275a7134018cfa28c76612321 (diff)
Move the user-visible parts of all options (names, types, limit, default
values) together into one set of tables in options-table.c. Also clean up and simplify cmd-set-options.c and move a common print function into option-table.c.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c125
1 files changed, 17 insertions, 108 deletions
diff --git a/tmux.c b/tmux.c
index a8331a1f..54abf658 100644
--- a/tmux.c
+++ b/tmux.c
@@ -228,7 +228,6 @@ int
main(int argc, char **argv)
{
struct passwd *pw;
- struct options *oo, *so, *wo;
struct keylist *keylist;
char *s, *path, *label, *home, **var;
int opt, flags, quiet, keys;
@@ -316,129 +315,39 @@ main(int argc, char **argv)
environ_put(&global_environ, *var);
options_init(&global_options, NULL);
- oo = &global_options;
- options_set_number(oo, "quiet", quiet);
- options_set_number(oo, "escape-time", 500);
- options_set_number(oo, "exit-unattached", 0);
- options_set_number(oo, "buffer-limit", 9);
+ options_table_populate_tree(server_options_table, &global_options);
+ options_set_number(&global_options, "quiet", quiet);
options_init(&global_s_options, NULL);
- so = &global_s_options;
- options_set_number(so, "base-index", 0);
- options_set_number(so, "bell-action", BELL_ANY);
- options_set_string(so, "default-command", "%s", "");
- options_set_string(so, "default-path", "%s", "");
- options_set_string(so, "default-shell", "%s", getshell());
- options_set_string(so, "default-terminal", "screen");
- options_set_number(so, "destroy-unattached", 0);
- options_set_number(so, "detach-on-destroy", 1);
- options_set_number(so, "display-panes-active-colour", 1);
- options_set_number(so, "display-panes-colour", 4);
- options_set_number(so, "display-panes-time", 1000);
- options_set_number(so, "display-time", 750);
- options_set_number(so, "history-limit", 2000);
- options_set_number(so, "lock-after-time", 0);
- options_set_string(so, "lock-command", "lock -np");
- options_set_number(so, "lock-server", 1);
- options_set_number(so, "message-attr", 0);
- options_set_number(so, "message-bg", 3);
- options_set_number(so, "message-fg", 0);
- options_set_number(so, "message-limit", 20);
- options_set_number(so, "mouse-select-pane", 0);
- options_set_number(so, "pane-active-border-bg", 8);
- options_set_number(so, "pane-active-border-fg", 2);
- options_set_number(so, "pane-border-bg", 8);
- options_set_number(so, "pane-border-fg", 8);
- options_set_number(so, "repeat-time", 500);
- options_set_number(so, "set-remain-on-exit", 0);
- options_set_number(so, "set-titles", 0);
- options_set_string(so, "set-titles-string", "#S:#I:#W - \"#T\"");
- options_set_number(so, "status", 1);
- options_set_number(so, "status-attr", 0);
- options_set_number(so, "status-bg", 2);
- options_set_number(so, "status-fg", 0);
- options_set_number(so, "status-interval", 15);
- options_set_number(so, "status-justify", 0);
- options_set_string(so, "status-left", "[#S]");
- options_set_number(so, "status-left-attr", 0);
- options_set_number(so, "status-left-bg", 8);
- options_set_number(so, "status-left-fg", 8);
- options_set_number(so, "status-left-length", 10);
- options_set_string(so, "status-right", "\"#22T\" %%H:%%M %%d-%%b-%%y");
- options_set_number(so, "status-right-attr", 0);
- options_set_number(so, "status-right-bg", 8);
- options_set_number(so, "status-right-fg", 8);
- options_set_number(so, "status-right-length", 40);
- options_set_string(so, "terminal-overrides",
- "*88col*:colors=88,*256col*:colors=256");
- options_set_string(so, "update-environment",
- "DISPLAY "
- "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION "
- "WINDOWID "
- "XAUTHORITY");
- options_set_number(so, "visual-activity", 0);
- options_set_number(so, "visual-bell", 0);
- options_set_number(so, "visual-content", 0);
- options_set_number(so, "visual-silence", 0);
+ options_table_populate_tree(session_options_table, &global_s_options);
+ options_set_string(&global_s_options, "default-shell", "%s", getshell());
+ options_init(&global_w_options, NULL);
+ options_table_populate_tree(window_options_table, &global_w_options);
+
+ /* Set the prefix option (its a list, so not in the table). */
keylist = xmalloc(sizeof *keylist);
ARRAY_INIT(keylist);
ARRAY_ADD(keylist, '\002');
- options_set_data(so, "prefix", keylist, xfree);
-
- options_init(&global_w_options, NULL);
- wo = &global_w_options;
- options_set_number(wo, "aggressive-resize", 0);
- options_set_number(wo, "alternate-screen", 1);
- options_set_number(wo, "automatic-rename", 1);
- options_set_number(wo, "clock-mode-colour", 4);
- options_set_number(wo, "clock-mode-style", 1);
- options_set_number(wo, "force-height", 0);
- options_set_number(wo, "force-width", 0);
- options_set_number(wo, "main-pane-height", 24);
- options_set_number(wo, "main-pane-width", 80);
- options_set_number(wo, "mode-attr", 0);
- options_set_number(wo, "mode-bg", 3);
- options_set_number(wo, "mode-fg", 0);
- options_set_number(wo, "mode-mouse", 0);
- options_set_number(wo, "monitor-activity", 0);
- options_set_string(wo, "monitor-content", "%s", "");
- options_set_number(wo, "monitor-silence", 0);
- options_set_number(wo, "other-pane-height", 0);
- options_set_number(wo, "other-pane-width", 0);
- options_set_number(wo, "window-status-attr", 0);
- options_set_number(wo, "window-status-bg", 8);
- options_set_number(wo, "window-status-current-attr", 0);
- options_set_number(wo, "window-status-current-bg", 8);
- options_set_number(wo, "window-status-current-fg", 8);
- options_set_number(wo, "window-status-fg", 8);
- options_set_number(wo, "window-status-alert-attr", GRID_ATTR_REVERSE);
- options_set_number(wo, "window-status-alert-bg", 8);
- options_set_number(wo, "window-status-alert-fg", 8);
- options_set_string(wo, "window-status-format", "#I:#W#F");
- options_set_string(wo, "window-status-current-format", "#I:#W#F");
- options_set_string(wo, "word-separators", " -_@");
- options_set_number(wo, "xterm-keys", 0);
- options_set_number(wo, "remain-on-exit", 0);
- options_set_number(wo, "synchronize-panes", 0);
+ options_set_data(&global_s_options, "prefix", keylist, xfree);
+ /* Enable UTF-8 if the first client is on UTF-8 terminal. */
if (flags & IDENTIFY_UTF8) {
- options_set_number(so, "status-utf8", 1);
- options_set_number(wo, "utf8", 1);
- } else {
- options_set_number(so, "status-utf8", 0);
- options_set_number(wo, "utf8", 0);
+ options_set_number(&global_s_options, "status-utf8", 1);
+ options_set_number(&global_w_options, "utf8", 1);
}
- keys = MODEKEY_EMACS;
+ /* Override keys to vi if VISUAL or EDITOR are set. */
if ((s = getenv("VISUAL")) != NULL || (s = getenv("EDITOR")) != NULL) {
if (strrchr(s, '/') != NULL)
s = strrchr(s, '/') + 1;
if (strstr(s, "vi") != NULL)
keys = MODEKEY_VI;
+ else
+ keys = MODEKEY_EMACS;
+ options_set_number(&global_s_options, "status-keys", keys);
+ options_set_number(&global_w_options, "mode-keys", keys);
}
- options_set_number(so, "status-keys", keys);
- options_set_number(wo, "mode-keys", keys);
/* Locate the configuration file. */
if (cfg_file == NULL) {