summaryrefslogtreecommitdiff
path: root/usr.bin/tmux/input-keys.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2021-04-08 14:16:13 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2021-04-08 14:16:13 +0000
commitad3f5164cab122c9eab35da509d5bfa413c80f1f (patch)
tree77cf4d5634bb1db9c6dee9d0d65939af5152a939 /usr.bin/tmux/input-keys.c
parent05da32bb574be8f10f249d3331d786ec321d02d7 (diff)
Log the key written to the terminal as well as tmux's idea of what it
is.
Diffstat (limited to 'usr.bin/tmux/input-keys.c')
-rw-r--r--usr.bin/tmux/input-keys.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/usr.bin/tmux/input-keys.c b/usr.bin/tmux/input-keys.c
index 6d74ce51265..bbb047025d3 100644
--- a/usr.bin/tmux/input-keys.c
+++ b/usr.bin/tmux/input-keys.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: input-keys.c,v 1.81 2020/11/17 08:13:35 nicm Exp $ */
+/* $OpenBSD: input-keys.c,v 1.82 2021/04/08 14:16:12 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -429,6 +429,14 @@ input_key_pane(struct window_pane *wp, key_code key, struct mouse_event *m)
return (input_key(wp->screen, wp->event, key));
}
+static void
+input_key_write(const char *from, struct bufferevent *bev, const void *data,
+ size_t size)
+{
+ log_debug("%s: %.*s", from, (int)size, data);
+ bufferevent_write(bev, data, size);
+}
+
/* Translate a key code into an output key sequence. */
int
input_key(struct screen *s, struct bufferevent *bev, key_code key)
@@ -445,7 +453,7 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
/* Literal keys go as themselves (can't be more than eight bits). */
if (key & KEYC_LITERAL) {
ud.data[0] = (u_char)key;
- bufferevent_write(bev, &ud.data[0], 1);
+ input_key_write(__func__, bev, &ud.data[0], 1);
return (0);
}
@@ -464,16 +472,16 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
justkey = (key & ~(KEYC_META|KEYC_IMPLIED_META));
if (justkey <= 0x7f) {
if (key & KEYC_META)
- bufferevent_write(bev, "\033", 1);
+ input_key_write(__func__, bev, "\033", 1);
ud.data[0] = justkey;
- bufferevent_write(bev, &ud.data[0], 1);
+ input_key_write(__func__, bev, &ud.data[0], 1);
return (0);
}
if (justkey > 0x7f && justkey < KEYC_BASE) {
if (key & KEYC_META)
- bufferevent_write(bev, "\033", 1);
+ input_key_write(__func__, bev, "\033", 1);
utf8_to_data(justkey, &ud);
- bufferevent_write(bev, ud.data, ud.size);
+ input_key_write(__func__, bev, ud.data, ud.size);
return (0);
}
@@ -495,8 +503,8 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
if (ike != NULL) {
log_debug("found key 0x%llx: \"%s\"", key, ike->data);
if ((key & KEYC_META) && (~key & KEYC_IMPLIED_META))
- bufferevent_write(bev, "\033", 1);
- bufferevent_write(bev, ike->data, strlen(ike->data));
+ input_key_write(__func__, bev, "\033", 1);
+ input_key_write(__func__, bev, ike->data, strlen(ike->data));
return (0);
}
@@ -561,7 +569,7 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
goto missing;
}
xsnprintf(tmp, sizeof tmp, "\033[%llu;%cu", outkey, modifier);
- bufferevent_write(bev, tmp, strlen(tmp));
+ input_key_write(__func__, bev, tmp, strlen(tmp));
return (0);
missing:
@@ -657,5 +665,5 @@ input_key_mouse(struct window_pane *wp, struct mouse_event *m)
if (!input_key_get_mouse(s, m, x, y, &buf, &len))
return;
log_debug("writing mouse %.*s to %%%u", (int)len, buf, wp->id);
- bufferevent_write(wp->event, buf, len);
+ input_key_write(__func__, wp->event, buf, len);
}