aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-08-18 21:41:13 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-08-18 21:41:13 +0000
commit036de0c5e44ba374707e86b313e4f848488ebdea (patch)
tree1f27c6f675996359af7e5726bcf2d19f26bbab7e
parentc488e5e40d37d441cd0d19cec0663015457a1337 (diff)
downloadrtmux-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.
-rw-r--r--input.c10
-rw-r--r--tmux.h1
2 files changed, 6 insertions, 5 deletions
diff --git a/input.c b/input.c
index 4cfd3522..7b43f261 100644
--- a/input.c
+++ b/input.c
@@ -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
diff --git a/tmux.h b/tmux.h
index 4aa844b8..f70d1f5c 100644
--- a/tmux.h
+++ b/tmux.h
@@ -617,6 +617,7 @@ struct input_ctx {
u_char *buf;
size_t len;
size_t off;
+ size_t was;
struct grid_cell cell;