If -u is specified or UTF-8 is otherwise detected when the server is started,

enable the utf8 and status-utf8 optons. While here, note in the man page that
the server is started with the first session and exits when none remain.
This commit is contained in:
Nicholas Marriott
2009-07-18 11:05:13 +00:00
parent 21cfef45d6
commit f1efd6b4e7
2 changed files with 37 additions and 21 deletions

44
tmux.c
View File

@ -1,4 +1,4 @@
/* $Id: tmux.c,v 1.142 2009-07-12 17:07:58 nicm Exp $ */
/* $Id: tmux.c,v 1.143 2009-07-18 11:05:13 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -275,6 +275,22 @@ main(int argc, char **argv)
log_open_tty(debug_level);
siginit();
if (!(flags & IDENTIFY_UTF8)) {
/*
* If the user has set whichever of LC_ALL, LC_CTYPE or LANG
* exist (in that order) to contain UTF-8, it is a safe
* assumption that either they are using a UTF-8 terminal, or
* if not they know that output from UTF-8-capable programs may
* be wrong.
*/
if ((s = getenv("LC_ALL")) == NULL) {
if ((s = getenv("LC_CTYPE")) == NULL)
s = getenv("LANG");
}
if (s != NULL && strcasestr(s, "UTF-8") != NULL)
flags |= IDENTIFY_UTF8;
}
options_init(&global_s_options, NULL);
options_set_number(&global_s_options, "bell-action", BELL_ANY);
options_set_number(&global_s_options, "buffer-limit", 9);
@ -301,7 +317,10 @@ main(int argc, char **argv)
options_set_string(&global_s_options, "status-left", "[#S]");
options_set_string(
&global_s_options, "status-right", "\"#24T\" %%H:%%M %%d-%%b-%%y");
options_set_number(&global_s_options, "status-utf8", 0);
if (flags & IDENTIFY_UTF8)
options_set_number(&global_s_options, "status-utf8", 1);
else
options_set_number(&global_s_options, "status-utf8", 0);
options_init(&global_w_options, NULL);
options_set_number(&global_w_options, "aggressive-resize", 0);
@ -318,29 +337,16 @@ main(int argc, char **argv)
options_set_number(&global_w_options, "mode-keys", MODEKEY_EMACS);
options_set_number(&global_w_options, "monitor-activity", 0);
options_set_string(&global_w_options, "monitor-content", "%s", "");
options_set_number(&global_w_options, "utf8", 0);
if (flags & IDENTIFY_UTF8)
options_set_number(&global_w_options, "utf8", 1);
else
options_set_number(&global_w_options, "utf8", 0);
options_set_number(&global_w_options, "window-status-attr", 0);
options_set_number(&global_w_options, "window-status-bg", 8);
options_set_number(&global_w_options, "window-status-fg", 8);
options_set_number(&global_w_options, "xterm-keys", 0);
options_set_number(&global_w_options, "remain-on-exit", 0);
if (!(flags & IDENTIFY_UTF8)) {
/*
* If the user has set whichever of LC_ALL, LC_CTYPE or LANG
* exist (in that order) to contain UTF-8, it is a safe
* assumption that either they are using a UTF-8 terminal, or
* if not they know that output from UTF-8-capable programs may
* be wrong.
*/
if ((s = getenv("LC_ALL")) == NULL) {
if ((s = getenv("LC_CTYPE")) == NULL)
s = getenv("LANG");
}
if (s != NULL && strcasestr(s, "UTF-8") != NULL)
flags |= IDENTIFY_UTF8;
}
if (cfg_file == NULL) {
home = getenv("HOME");
if (home == NULL || *home == '\0') {