summaryrefslogtreecommitdiffstats
path: root/window.c
diff options
context:
space:
mode:
authornicm <nicm>2019-05-07 10:25:15 +0000
committernicm <nicm>2019-05-07 10:25:15 +0000
commit69440d19b783c72139f22c5c72b34b55d99e71de (patch)
treeac9803539b6091f3c666c471d76c2dd8e30fbb86 /window.c
parent45ae9a8e3520d73c795bb993ced4fe43d06ad6f1 (diff)
Do not use evbuffer_add_buffer because it is destructive and doesn't
work in newer libevent.
Diffstat (limited to 'window.c')
-rw-r--r--window.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/window.c b/window.c
index 62de5006..b08a5d35 100644
--- a/window.c
+++ b/window.c
@@ -1477,6 +1477,9 @@ window_pane_input_callback(struct client *c, int closed, void *data)
{
struct window_pane_input_data *cdata = data;
struct window_pane *wp;
+ struct evbuffer *evb = c->stdin_data;
+ u_char *buf = EVBUFFER_DATA(evb);
+ size_t len = EVBUFFER_LENGTH(evb);
wp = window_pane_find_by_id(cdata->wp);
if (wp == NULL || closed || c->flags & CLIENT_DEAD) {
@@ -1489,9 +1492,8 @@ window_pane_input_callback(struct client *c, int closed, void *data)
return;
}
- if (evbuffer_add_buffer(wp->event->input, c->stdin_data) != 0)
- evbuffer_drain(c->stdin_data, EVBUFFER_LENGTH(c->stdin_data));
- input_parse(wp);
+ input_parse_buffer(wp, buf, len);
+ evbuffer_drain(evb, len);
}
int