From 526f00d1a0823537518ffd21a9d46f503ad8493a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Tue, 15 Apr 2014 18:41:35 +1000 Subject: Fix up a couple of bugs in the buffer full case. --- handlekeys.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/handlekeys.c b/handlekeys.c index e605966..44c0748 100644 --- a/handlekeys.c +++ b/handlekeys.c @@ -253,6 +253,8 @@ void handle_keys(long extra, int (*handle_event)(long extra, struct keyevent *ev else { buffIndex += j; + buffer[buffIndex] = 0; + // Send raw keystrokes, mostly for things like showkey. event.type = HK_RAW; event.sequence = buffer; @@ -261,13 +263,13 @@ void handle_keys(long extra, int (*handle_event)(long extra, struct keyevent *ev if (sizeof(buffer) < (buffIndex + 1)) // Ran out of buffer. { + buffer[buffIndex] = 0; fprintf(stderr, "Full buffer - %s -> %s\n", buffer, sequence); - for (j = 0; buffer[j + 1]; j++) + for (j = 0; buffer[j]; j++) fprintf(stderr, "(%x) %c, ", (int) buffer[j], buffer[j]); fflush(stderr); - buffIndex = 0; + buffer[0] = buffIndex = 0; } - buffer[buffIndex] = 0; } } -- cgit v1.1