aboutsummaryrefslogtreecommitdiff
path: root/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'window.c')
-rw-r--r--window.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/window.c b/window.c
index 7f2eac8d..4a801a76 100644
--- a/window.c
+++ b/window.c
@@ -586,9 +586,19 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
void
window_pane_read_callback(unused struct bufferevent *bufev, void *data)
{
- struct window_pane *wp = data;
+ struct window_pane *wp = data;
+ char *new_data;
+ size_t new_size;
+
+ new_size = EVBUFFER_LENGTH(wp->event->input) - wp->pipe_off;
+ if (wp->pipe_fd != -1 && new_size > 0) {
+ new_data = EVBUFFER_DATA(wp->event->input);
+ bufferevent_write(wp->pipe_event, new_data, new_size);
+ }
- window_pane_parse(wp);
+ input_parse(wp);
+
+ wp->pipe_off = EVBUFFER_LENGTH(wp->event->input);
}
/* ARGSUSED */
@@ -727,23 +737,6 @@ window_pane_reset_mode(struct window_pane *wp)
}
void
-window_pane_parse(struct window_pane *wp)
-{
- char *data;
- size_t new_size;
-
- new_size = EVBUFFER_LENGTH(wp->event->input) - wp->pipe_off;
- if (wp->pipe_fd != -1 && new_size > 0) {
- data = EVBUFFER_DATA(wp->event->input);
- bufferevent_write(wp->pipe_event, data, new_size);
- }
-
- input_parse(wp);
-
- wp->pipe_off = EVBUFFER_LENGTH(wp->event->input);
-}
-
-void
window_pane_key(struct window_pane *wp, struct client *c, int key)
{
struct window_pane *wp2;