summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2009-07-17 13:38:03 +0000
committernicm <nicm@openbsd.org>2009-07-17 13:38:03 +0000
commit461e0674a148e1cbf890cd81952f8fae8d4b0bd9 (patch)
tree5fc41d593a39b4d04aa2b900976abb372dbf1b3d
parentInitialize a variable that was previously using a mystery value in (diff)
downloadwireguard-openbsd-461e0674a148e1cbf890cd81952f8fae8d4b0bd9.tar.xz
wireguard-openbsd-461e0674a148e1cbf890cd81952f8fae8d4b0bd9.zip
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.
-rw-r--r--usr.bin/tmux/tmux.116
-rw-r--r--usr.bin/tmux/tmux.c44
2 files changed, 38 insertions, 22 deletions
diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1
index 33cc6096e3a..384cbdd7f46 100644
--- a/usr.bin/tmux/tmux.1
+++ b/usr.bin/tmux/tmux.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: tmux.1,v 1.32 2009/07/16 22:50:49 nicm Exp $
+.\" $OpenBSD: tmux.1,v 1.33 2009/07/17 13:38:03 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
.\"
@@ -14,7 +14,7 @@
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: July 16 2009 $
+.Dd $Mdocdate: July 17 2009 $
.Dt TMUX 1
.Os
.Sh NAME
@@ -36,11 +36,13 @@ controlled from a single terminal.
.Pp
.Nm
runs as a server-client system.
-A server is created automatically when necessary and holds a number of
+A server holds a number of
.Em sessions ,
each of which may have a number of
.Em windows
linked to it.
+A server is started automatically when the first session is created and exits
+when all the sessions it contains are destroyed.
A window may be split on screen into one or more
.Em panes ,
each of which is a separate terminal.
@@ -123,6 +125,14 @@ This is not always correct: the
flag explicitly informs
.Nm
that UTF-8 is supported.
+.Pp
+If the server is started from a client passed
+.Fl u
+or where UTF-8 is detected, the
+.Ic utf8
+and
+.Ic status-utf8
+options are enabled in the global window and session options respectively.
.It Fl v
Request verbose logging.
This option may be specified multiple times for increasing verbosity.
diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c
index e4035fc45ae..27d51c8cd23 100644
--- a/usr.bin/tmux/tmux.c
+++ b/usr.bin/tmux/tmux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.c,v 1.14 2009/07/10 05:50:54 nicm Exp $ */
+/* $OpenBSD: tmux.c,v 1.15 2009/07/17 13:38:03 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -266,6 +266,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);
@@ -292,7 +308,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);
@@ -309,29 +328,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') {