=== modified file 'termkey.c' --- termkey.c 2008-12-06 00:03:48 +0000 +++ termkey.c 2008-12-05 23:55:44 +0000 @@ -318,6 +318,13 @@ tk->buffstart += count; tk->buffcount -= count; + + size_t halfsize = tk->buffsize / 2; + + if(tk->buffstart > halfsize) { + memcpy(tk->buffer, tk->buffer + halfsize, halfsize); + tk->buffstart -= halfsize; + } } static inline unsigned int utf8_seqlen(long codepoint) @@ -437,16 +444,6 @@ #ifdef DEBUG print_key(tk, key); fprintf(stderr, "\n"); #endif - // Slide the data down to stop it running away - { - size_t halfsize = tk->buffsize / 2; - - if(tk->buffstart > halfsize) { - memcpy(tk->buffer, tk->buffer + halfsize, halfsize); - tk->buffstart -= halfsize; - } - } - /* fallthrough */ case TERMKEY_RES_EOF: return ret;