diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-11-22 14:26:05 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-11-22 14:26:05 +0000 |
commit | e97fc3e897c4b8091e749b6054b3425c3ff1ba24 (patch) | |
tree | c48d5e0c79f8a7129d69b39b011ab541e095b57a | |
parent | 4a4b5922be5ef1bea62c3c729870fe34b601ec52 (diff) |
Instead of worrying about xterm version, send DA and read DEC service
class which is more likely to be useful. Not used for anything yet
anyway.
-rw-r--r-- | usr.bin/tmux/cmd-server-info.c | 6 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.h | 5 | ||||
-rw-r--r-- | usr.bin/tmux/tty-keys.c | 32 | ||||
-rw-r--r-- | usr.bin/tmux/tty.c | 12 |
4 files changed, 20 insertions, 35 deletions
diff --git a/usr.bin/tmux/cmd-server-info.c b/usr.bin/tmux/cmd-server-info.c index 9d5514fa100..af75a9f016a 100644 --- a/usr.bin/tmux/cmd-server-info.c +++ b/usr.bin/tmux/cmd-server-info.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-server-info.c,v 1.27 2012/07/11 07:10:15 nicm Exp $ */ +/* $OpenBSD: cmd-server-info.c,v 1.28 2012/11/22 14:26:04 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> @@ -89,10 +89,10 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx) continue; ctx->print(ctx,"%2d: %s (%d, %d): %s [%ux%u %s bs=%hho " - "xterm=%u] [flags=0x%x/0x%x, references=%u]", i, + "class=%u] [flags=0x%x/0x%x, references=%u]", i, c->tty.path, c->ibuf.fd, c->tty.fd, c->session->name, c->tty.sx, c->tty.sy, c->tty.termname, - c->tty.tio.c_cc[VERASE], c->tty.xterm_version, + c->tty.tio.c_cc[VERASE], c->tty.service_class, c->flags, c->tty.flags, c->references); } ctx->print(ctx, "%s", ""); diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h index d38b4337d43..159ecc7574c 100644 --- a/usr.bin/tmux/tmux.h +++ b/usr.bin/tmux/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.362 2012/11/19 10:38:06 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.363 2012/11/22 14:26:04 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1193,7 +1193,7 @@ struct tty { struct client *client; char *path; - u_int xterm_version; + u_int service_class; u_int sx; u_int sy; @@ -1638,7 +1638,6 @@ void tty_init(struct tty *, struct client *, int, char *); int tty_resize(struct tty *); int tty_set_size(struct tty *, u_int, u_int); void tty_start_tty(struct tty *); -void tty_set_version(struct tty *, u_int); void tty_stop_tty(struct tty *); void tty_set_title(struct tty *, const char *); void tty_update_mode(struct tty *, int, struct screen *); diff --git a/usr.bin/tmux/tty-keys.c b/usr.bin/tmux/tty-keys.c index 06f6ab7c7ff..466bd80587c 100644 --- a/usr.bin/tmux/tty-keys.c +++ b/usr.bin/tmux/tty-keys.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty-keys.c,v 1.45 2012/10/26 14:35:42 nicm Exp $ */ +/* $OpenBSD: tty-keys.c,v 1.46 2012/11/22 14:26:04 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -724,18 +724,17 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size) int tty_keys_device(struct tty *tty, const char *buf, size_t len, size_t *size) { - u_int i, a, b; + u_int i, n; char tmp[64], *endptr; /* * Primary device attributes are \033[?a;b and secondary are - * \033[>a;b;c. We only request attributes on xterm, so we only care - * about the middle values which is the xterm version. + * \033[>a;b;c. */ *size = 0; - /* First three bytes are always \033[>. */ + /* First three bytes are always \033[?. */ if (buf[0] != '\033') return (-1); if (len == 1) @@ -760,22 +759,17 @@ tty_keys_device(struct tty *tty, const char *buf, size_t len, size_t *size) tmp[i] = '\0'; *size = 4 + i; - /* Only secondary is of interest. */ - if (buf[2] != '>') + /* Only primary is of interest. */ + if (buf[2] != '?') return (0); - /* Convert version numbers. */ - a = strtoul(tmp, &endptr, 10); - if (*endptr == ';') { - b = strtoul(endptr + 1, &endptr, 10); - if (*endptr != '\0' && *endptr != ';') - b = 0; - } else - a = b = 0; - - log_debug("received xterm version %u", b); - if (b < 500) - tty_set_version(tty, b); + /* Convert service class. */ + n = strtoul(tmp, &endptr, 10); + if (*endptr != ';') + n = 0; + + log_debug("received service class %u", n); + tty->service_class = n; return (0); } diff --git a/usr.bin/tmux/tty.c b/usr.bin/tmux/tty.c index 46a0a24284b..20c9b67a672 100644 --- a/usr.bin/tmux/tty.c +++ b/usr.bin/tmux/tty.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.143 2012/11/22 14:10:53 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.144 2012/11/22 14:26:04 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -224,7 +224,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"); tty->cx = UINT_MAX; tty->cy = UINT_MAX; @@ -240,14 +240,6 @@ tty_start_tty(struct tty *tty) } void -tty_set_version(struct tty *tty, u_int version) -{ - if (tty->xterm_version != 0) - return; - tty->xterm_version = version; -} - -void tty_stop_tty(struct tty *tty) { struct winsize ws; |