The branch, master has been updated
       via  8df3ec612a8c496fc2c975b8241f4e95faef5715 (commit)
      from  4c91c153cb087e1256578da1e53f002edefc9958 (commit)

- Log -----------------------------------------------------------------
commit 8df3ec612a8c496fc2c975b8241f4e95faef5715
Author: Nicholas Marriott <nicholas.marri...@gmail.com>
Commit: Nicholas Marriott <nicholas.marri...@gmail.com>

    In terminals with XT, turn on modifyOtherKeys=1 with the escape sequence and
    handle the most common set. Pass them through if xterm-keys is on.
---
 key-string.c |   11 ++++++-----
 tty.c        |    5 ++++-
 xterm-keys.c |   28 ++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/key-string.c b/key-string.c
index df17739..797eedd 100644
--- a/key-string.c
+++ b/key-string.c
@@ -136,9 +136,10 @@ key_string_get_modifiers(const char **string)
 int
 key_string_lookup_string(const char *string)
 {
-       int     key, modifiers;
-       u_short u;
-       int     size;
+       static const char       *other = "!#()+,-.0123456789:;<=>?'\r\t";
+       int                      key, modifiers;
+       u_short                  u;
+       int                      size;
 
        /* Is this a hexadecimal value? */
        if (string[0] == '0' && string[1] == 'x') {
@@ -170,7 +171,7 @@ key_string_lookup_string(const char *string)
        }
 
        /* Convert the standard control keys. */
-       if (key < KEYC_BASE && (modifiers & KEYC_CTRL)) {
+       if (key < KEYC_BASE && (modifiers & KEYC_CTRL) && !strchr(other, key)) {
                if (key >= 97 && key <= 122)
                        key -= 96;
                else if (key >= 64 && key <= 95)
@@ -193,7 +194,7 @@ key_string_lookup_key(int key)
 {
        static char     out[24];
        char            tmp[8];
-       u_int           i;
+       u_int           i;
 
        *out = '\0';
 
diff --git a/tty.c b/tty.c
index 892960f..cc83434 100644
--- a/tty.c
+++ b/tty.c
@@ -223,7 +223,7 @@ tty_start_tty(struct tty *tty)
                tty_puts(tty, "\033[?1000l");
 
        if (tty_term_has(tty->term, TTYC_XT))
-               tty_puts(tty, "\033[c");
+               tty_puts(tty, "\033[c\033[>4;1m");
 
        tty->cx = UINT_MAX;
        tty->cy = UINT_MAX;
@@ -285,6 +285,9 @@ tty_stop_tty(struct tty *tty)
        if (tty_term_has(tty->term, TTYC_KMOUS))
                tty_raw(tty, "\033[?1000l");
 
+       if (tty_term_has(tty->term, TTYC_XT))
+               tty_puts(tty, "\033[>4m");
+
        tty_raw(tty, tty_term_string(tty->term, TTYC_RMCUP));
 
        setblocking(tty->fd, 1);
diff --git a/xterm-keys.c b/xterm-keys.c
index f09072c..8c88587 100644
--- a/xterm-keys.c
+++ b/xterm-keys.c
@@ -87,6 +87,34 @@ const struct xterm_keys_entry xterm_keys_table[] = {
        { KEYC_NPAGE,   "\033[6;_~" },
        { KEYC_IC,      "\033[2;_~" },
        { KEYC_DC,      "\033[3;_~" },
+
+       { '!',          "\033[27;_;33~" },
+       { '#',          "\033[27;_;35~" },
+       { '(',          "\033[27;_;40~" },
+       { ')',          "\033[27;_;41~" },
+       { '+',          "\033[27;_;43~" },
+       { ',',          "\033[27;_;44~" },
+       { '-',          "\033[27;_;45~" },
+       { '.',          "\033[27;_;46~" },
+       { '0',          "\033[27;_;48~" },
+       { '1',          "\033[27;_;49~" },
+       { '2',          "\033[27;_;50~" },
+       { '3',          "\033[27;_;51~" },
+       { '4',          "\033[27;_;52~" },
+       { '5',          "\033[27;_;53~" },
+       { '6',          "\033[27;_;54~" },
+       { '7',          "\033[27;_;55~" },
+       { '8',          "\033[27;_;56~" },
+       { '9',          "\033[27;_;57~" },
+       { ':',          "\033[27;_;58~" },
+       { ';',          "\033[27;_;59~" },
+       { '<',          "\033[27;_;60~" },
+       { '=',          "\033[27;_;61~" },
+       { '>',          "\033[27;_;62~" },
+       { '?',          "\033[27;_;63~" },
+       { '\'',         "\033[27;_;39~" },
+       { '\r',         "\033[27;_;13~" },
+       { '\t',         "\033[27;_;9~" },
 };
 
 /*


-----------------------------------------------------------------------

Summary of changes:
 key-string.c |   11 ++++++-----
 tty.c        |    5 ++++-
 xterm-keys.c |   28 ++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
tmux

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
tmux-cvs mailing list
tmux-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-cvs

Reply via email to