aboutsummaryrefslogtreecommitdiff
path: root/input-keys.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-01-13 10:01:27 +0000
committerThomas Adam <thomas@xteddy.org>2020-01-13 10:01:27 +0000
commit8457f54edcdfdf7b6e48a291808135258abfe5b8 (patch)
treeec28f5aff04e065ffb07447e3b8fb1730c307cb2 /input-keys.c
parent3e701309a4edb10b6092a4f4801fa50c3277afe9 (diff)
parent835a6c0cf088437e318783c96b142c7dc26c290f (diff)
downloadrtmux-8457f54edcdfdf7b6e48a291808135258abfe5b8.tar.gz
rtmux-8457f54edcdfdf7b6e48a291808135258abfe5b8.tar.bz2
rtmux-8457f54edcdfdf7b6e48a291808135258abfe5b8.zip
Merge branch 'obsd-master'
Diffstat (limited to 'input-keys.c')
-rw-r--r--input-keys.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/input-keys.c b/input-keys.c
index b0ea5104..69c5199e 100644
--- a/input-keys.c
+++ b/input-keys.c
@@ -149,7 +149,7 @@ input_split2(u_int c, u_char *dst)
}
/* Translate a key code into an output key sequence. */
-void
+int
input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
{
const struct input_key_ent *ike;
@@ -166,14 +166,14 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
if (KEYC_IS_MOUSE(key)) {
if (m != NULL && m->wp != -1 && (u_int)m->wp == wp->id)
input_key_mouse(wp, m);
- return;
+ return (0);
}
/* Literal keys go as themselves (can't be more than eight bits). */
if (key & KEYC_LITERAL) {
ud.data[0] = (u_char)key;
bufferevent_write(wp->event, &ud.data[0], 1);
- return;
+ return (0);
}
/* Is this backspace? */
@@ -194,15 +194,15 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
bufferevent_write(wp->event, "\033", 1);
ud.data[0] = justkey;
bufferevent_write(wp->event, &ud.data[0], 1);
- return;
+ return (0);
}
if (justkey > 0x7f && justkey < KEYC_BASE) {
if (utf8_split(justkey, &ud) != UTF8_DONE)
- return;
+ return (-1);
if (key & KEYC_ESCAPE)
bufferevent_write(wp->event, "\033", 1);
bufferevent_write(wp->event, ud.data, ud.size);
- return;
+ return (0);
}
/*
@@ -213,7 +213,7 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
if ((out = xterm_keys_lookup(key)) != NULL) {
bufferevent_write(wp->event, out, strlen(out));
free(out);
- return;
+ return (0);
}
}
key &= ~KEYC_XTERM;
@@ -236,7 +236,7 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
}
if (i == nitems(input_keys)) {
log_debug("key 0x%llx missing", key);
- return;
+ return (-1);
}
dlen = strlen(ike->data);
log_debug("found key 0x%llx: \"%s\"", key, ike->data);
@@ -245,6 +245,7 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m)
if (key & KEYC_ESCAPE)
bufferevent_write(wp->event, "\033", 1);
bufferevent_write(wp->event, ike->data, dlen);
+ return (0);
}
/* Translate mouse and output. */