diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-08-18 21:41:13 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-08-18 21:41:13 +0000 |
commit | 036de0c5e44ba374707e86b313e4f848488ebdea (patch) | |
tree | 1f27c6f675996359af7e5726bcf2d19f26bbab7e /input.c | |
parent | c488e5e40d37d441cd0d19cec0663015457a1337 (diff) | |
download | rtmux-036de0c5e44ba374707e86b313e4f848488ebdea.tar.gz rtmux-036de0c5e44ba374707e86b313e4f848488ebdea.tar.bz2 rtmux-036de0c5e44ba374707e86b313e4f848488ebdea.zip |
Instead of just checking for an empty buffer, which may not be the case if
there is unconsumed data, save the previous size and use it instead. This means
that activity monitoring should work in this (unlikely) event.
Also remove a debugging statement that no longer seems necessary.
Diffstat (limited to 'input.c')
-rw-r--r-- | input.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -235,6 +235,8 @@ input_init(struct window_pane *wp) ictx->saved_cy = 0; input_state(ictx, input_state_first); + + ictx->was = 0; } void @@ -252,8 +254,9 @@ input_parse(struct window_pane *wp) struct input_ctx *ictx = &wp->ictx; u_char ch; - if (BUFFER_USED(wp->in) == 0) + if (BUFFER_USED(wp->in) == ictx->was) return; + wp->window->flags |= WINDOW_ACTIVITY; ictx->buf = BUFFER_OUT(wp->in); ictx->len = BUFFER_USED(wp->in); @@ -261,15 +264,11 @@ input_parse(struct window_pane *wp) ictx->wp = wp; - log_debug2("entry; buffer=%zu", ictx->len); - if (wp->mode == NULL) screen_write_start(&ictx->ctx, wp, &wp->base); else screen_write_start(&ictx->ctx, NULL, &wp->base); - if (ictx->off != ictx->len) - wp->window->flags |= WINDOW_ACTIVITY; while (ictx->off < ictx->len) { ch = ictx->buf[ictx->off++]; ictx->state(ch, ictx); @@ -278,6 +277,7 @@ input_parse(struct window_pane *wp) screen_write_stop(&ictx->ctx); buffer_remove(wp->in, ictx->len); + ictx->was = BUFFER_USED(wp->in); } void |