Use tty_term_flag not _has for XT, and make -2 force direct use of
authornicm <nicm@openbsd.org>
Fri, 23 Oct 2015 15:52:54 +0000 (15:52 +0000)
committernicm <nicm@openbsd.org>
Fri, 23 Oct 2015 15:52:54 +0000 (15:52 +0000)
256-colour escape sequences (so setaf/setab can be bypassed if needed).

usr.bin/tmux/tty.c

index 37226f8..db27a04 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.188 2015/09/25 23:30:12 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.189 2015/10/23 15:52:54 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -228,7 +228,7 @@ tty_start_tty(struct tty *tty)
        if (tty_term_has(tty->term, TTYC_KMOUS))
                tty_puts(tty, "\033[?1000l\033[?1002l\033[?1006l\033[?1005l");
 
-       if (tty_term_has(tty->term, TTYC_XT)) {
+       if (tty_term_flag(tty->term, TTYC_XT)) {
                if (options_get_number(&global_options, "focus-events")) {
                        tty->flags |= TTY_FOCUS;
                        tty_puts(tty, "\033[?1004h");
@@ -293,7 +293,7 @@ tty_stop_tty(struct tty *tty)
        if (tty_term_has(tty->term, TTYC_KMOUS))
                tty_raw(tty, "\033[?1000l\033[?1002l\033[?1006l\033[?1005l");
 
-       if (tty_term_has(tty->term, TTYC_XT)) {
+       if (tty_term_flag(tty->term, TTYC_XT)) {
                if (tty->flags & TTY_FOCUS) {
                        tty->flags &= ~TTY_FOCUS;
                        tty_raw(tty, "\033[?1004l");
@@ -1647,6 +1647,13 @@ tty_try_256(struct tty *tty, u_char colour, const char *type)
 {
        char    s[32];
 
+       /*
+        * If the user has specified -2 to the client, setaf and setab may not
+        * work (or they may not want to use them), so send the usual sequence.
+        */
+       if (tty->term_flags & TERM_256COLOURS)
+               goto fallback;
+
        /*
         * If the terminfo entry has 256 colours and setaf and setab exist,
         * assume that they work correctly.
@@ -1664,13 +1671,6 @@ tty_try_256(struct tty *tty, u_char colour, const char *type)
                return (0);
        }
 
-       /*
-        * If the user has specified -2 to the client, setaf and setab may not
-        * work, so send the usual sequence.
-        */
-       if (tty->term_flags & TERM_256COLOURS)
-               goto fallback;
-
        return (-1);
 
 fallback: