aboutsummaryrefslogtreecommitdiff
path: root/termkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'termkey.c')
-rw-r--r--termkey.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/termkey.c b/termkey.c
index 819b49f..644629f 100644
--- a/termkey.c
+++ b/termkey.c
@@ -188,14 +188,15 @@ int termkey_getwaittime(termkey_t *tk)
static inline void eatbytes(termkey_t *tk, size_t count)
{
- tk->buffstart += count;
- tk->buffcount -= count;
-
- if(tk->buffcount <= 0) {
+ if(count >= tk->buffcount) {
tk->buffstart = 0;
tk->buffcount = 0;
+ return;
}
+ tk->buffstart += count;
+ tk->buffcount -= count;
+
size_t halfsize = tk->buffsize / 2;
if(tk->buffstart > halfsize) {