summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tmux/server-client.c4
-rw-r--r--usr.bin/tmux/tmux.c7
-rw-r--r--usr.bin/tmux/tmux.h10
-rw-r--r--usr.bin/tmux/tty-term.c13
-rw-r--r--usr.bin/tmux/tty.c39
5 files changed, 32 insertions, 41 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index 6c7f9a63531..451b5f81e3d 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.4 2009/10/25 17:51:07 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.5 2009/10/25 21:11:21 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -703,8 +703,6 @@ server_client_msg_identify(
c->tty.term_flags |= TERM_256COLOURS;
else if (data->flags & IDENTIFY_88COLOURS)
c->tty.term_flags |= TERM_88COLOURS;
- if (data->flags & IDENTIFY_HASDEFAULTS)
- c->tty.term_flags |= TERM_HASDEFAULTS;
tty_resize(&c->tty);
diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c
index fe9fc0aad0c..bba33d99dd6 100644
--- a/usr.bin/tmux/tmux.c
+++ b/usr.bin/tmux/tmux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.c,v 1.51 2009/10/22 10:04:07 nicm Exp $ */
+/* $OpenBSD: tmux.c,v 1.52 2009/10/25 21:11:21 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -62,7 +62,7 @@ __dead void
usage(void)
{
fprintf(stderr,
- "usage: %s [-28dlquv] [-c shell-command] [-f file] [-L socket-name]\n"
+ "usage: %s [-28lquv] [-c shell-command] [-f file] [-L socket-name]\n"
" [-S socket-path] [command [flags]]\n",
__progname);
exit(1);
@@ -317,9 +317,6 @@ main(int argc, char **argv)
xfree(shellcmd);
shellcmd = xstrdup(optarg);
break;
- case 'd':
- flags |= IDENTIFY_HASDEFAULTS;
- break;
case 'f':
if (cfg_file != NULL)
xfree(cfg_file);
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h
index 744b8556d05..0c149af9785 100644
--- a/usr.bin/tmux/tmux.h
+++ b/usr.bin/tmux/tmux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.146 2009/10/22 19:41:51 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.147 2009/10/25 21:11:21 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -346,7 +346,6 @@ struct msg_identify_data {
#define IDENTIFY_UTF8 0x1
#define IDENTIFY_256COLOURS 0x2
#define IDENTIFY_88COLOURS 0x4
-#define IDENTIFY_HASDEFAULTS 0x8
int flags;
};
@@ -908,10 +907,9 @@ struct tty_term {
struct tty_code codes[NTTYCODE];
-#define TERM_HASDEFAULTS 0x1
-#define TERM_256COLOURS 0x2
-#define TERM_88COLOURS 0x4
-#define TERM_EARLYWRAP 0x8
+#define TERM_256COLOURS 0x1
+#define TERM_88COLOURS 0x2
+#define TERM_EARLYWRAP 0x4
int flags;
SLIST_ENTRY(tty_term) entry;
diff --git a/usr.bin/tmux/tty-term.c b/usr.bin/tmux/tty-term.c
index e3895427918..4a65155c6bf 100644
--- a/usr.bin/tmux/tty-term.c
+++ b/usr.bin/tmux/tty-term.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty-term.c,v 1.11 2009/10/24 21:18:33 nicm Exp $ */
+/* $OpenBSD: tty-term.c,v 1.12 2009/10/25 21:11:21 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -348,17 +348,6 @@ tty_term_find(char *name, int fd, const char *overrides, char **cause)
goto error;
}
- /*
- * Figure out if terminal support default colours. AX is a screen
- * extension which indicates this. Also check if op (orig_pair) uses
- * the default colours - if it does, this is a good indication the
- * terminal supports them.
- */
- if (tty_term_flag(term, TTYC_AX))
- term->flags |= TERM_HASDEFAULTS;
- if (strcmp(tty_term_string(term, TTYC_OP), "\033[39;49m") == 0)
- term->flags |= TERM_HASDEFAULTS;
-
/* Figure out if we have 256 or 88 colours. */
if (tty_term_number(term, TTYC_COLORS) == 256)
term->flags |= TERM_256COLOURS;
diff --git a/usr.bin/tmux/tty.c b/usr.bin/tmux/tty.c
index ab0b7d9a2d9..7eaca87bb7c 100644
--- a/usr.bin/tmux/tty.c
+++ b/usr.bin/tmux/tty.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.58 2009/10/21 19:27:09 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.59 2009/10/25 21:11:21 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -1236,13 +1236,21 @@ tty_attributes_fg(struct tty *tty, const struct grid_cell *gc)
tty_reset(tty);
}
- if (fg == 8 &&
- !(tty->term->flags & TERM_HASDEFAULTS) &&
- !(tty->term_flags & TERM_HASDEFAULTS))
- fg = 7;
- if (fg == 8)
- tty_puts(tty, "\033[39m");
- else
+ if (fg == 8) {
+ if (tty_term_has(tty->term, TTYC_AX)) {
+ /* AX is an extension that means \033[39m works. */
+ tty_puts(tty, "\033[39m");
+ } else if (tty_term_has(tty->term, TTYC_OP)) {
+ /*
+ * op can be used to look for default colours but there
+ * is no point in using it - with some terminals it
+ * does SGR0 and others not, so SGR0 is needed anyway
+ * to put the terminal into a known state.
+ */
+ tty_reset(tty);
+ } else
+ tty_putcode1(tty, TTYC_SETAF, 7);
+ } else
tty_putcode1(tty, TTYC_SETAF, fg);
}
@@ -1262,12 +1270,13 @@ tty_attributes_bg(struct tty *tty, const struct grid_cell *gc)
bg &= 7;
}
- if (bg == 8 &&
- !(tty->term->flags & TERM_HASDEFAULTS) &&
- !(tty->term_flags & TERM_HASDEFAULTS))
- bg = 0;
- if (bg == 8)
- tty_puts(tty, "\033[49m");
- else
+ if (bg == 8) {
+ if (tty_term_has(tty->term, TTYC_AX)) {
+ tty_puts(tty, "\033[49m");
+ } else if (tty_term_has(tty->term, TTYC_OP))
+ tty_reset(tty);
+ else
+ tty_putcode1(tty, TTYC_SETAB, 0);
+ } else
tty_putcode1(tty, TTYC_SETAB, bg);
}