=== modified file 'driver-ti.c' --- driver-ti.c 2009-11-26 00:27:58 +0000 +++ driver-ti.c 2009-11-25 14:46:19 +0000 @@ -311,18 +311,16 @@ return TERMKEY_RES_KEY; } else if(p->type == TYPE_MOUSE) { - tk->buffstart += pos; - tk->buffcount -= pos; - - TermKeyResult mouse_result = (*tk->method.peekkey_mouse)(tk, key, nbytep); - - tk->buffstart -= pos; - tk->buffcount += pos; - - if(mouse_result == TERMKEY_RES_KEY) - *nbytep += pos; - - return mouse_result; + if(tk->buffcount - pos < 3) + return TERMKEY_RES_AGAIN; + + key->type = TERMKEY_TYPE_MOUSE; + key->code.mouse.buttons = CHARAT(pos+0) - 0x20; + key->code.mouse.col = CHARAT(pos+1) - 0x20; + key->code.mouse.line = CHARAT(pos+2) - 0x20; + key->modifiers = 0; + *nbytep = pos+3; + return TERMKEY_RES_KEY; } } === modified file 'termkey-internal.h' --- termkey-internal.h 2009-11-26 00:27:58 +0000 +++ termkey-internal.h 2009-07-15 19:40:44 +0000 @@ -58,7 +58,6 @@ struct { void (*emit_codepoint)(TermKey *tk, long codepoint, TermKeyKey *key); TermKeyResult (*peekkey_simple)(TermKey *tk, TermKeyKey *key, int force, size_t *nbytes); - TermKeyResult (*peekkey_mouse)(TermKey *tk, TermKeyKey *key, size_t *nbytes); } method; }; === modified file 'termkey.c' --- termkey.c 2009-11-26 00:27:58 +0000 +++ termkey.c 2009-11-24 01:25:40 +0000 @@ -35,7 +35,6 @@ // static void eat_bytes(TermKey *tk, size_t count); static void emit_codepoint(TermKey *tk, long codepoint, TermKeyKey *key); static TermKeyResult peekkey_simple(TermKey *tk, TermKeyKey *key, int force, size_t *nbytes); -static TermKeyResult peekkey_mouse(TermKey *tk, TermKeyKey *key, size_t *nbytes); static TermKeySym register_c0(TermKey *tk, TermKeySym sym, unsigned char ctrl, const char *name); static TermKeySym register_c0_full(TermKey *tk, TermKeySym sym, int modifier_set, int modifier_mask, unsigned char ctrl, const char *name); @@ -166,7 +165,6 @@ tk->method.emit_codepoint = &emit_codepoint; tk->method.peekkey_simple = &peekkey_simple; - tk->method.peekkey_mouse = &peekkey_mouse; for(i = 0; keynames[i].name; i++) termkey_register_keyname(tk, keynames[i].sym, keynames[i].name); @@ -633,20 +631,6 @@ } } -static TermKeyResult peekkey_mouse(TermKey *tk, TermKeyKey *key, size_t *nbytep) -{ - if(tk->buffcount < 3) - return TERMKEY_RES_AGAIN; - - key->type = TERMKEY_TYPE_MOUSE; - key->code.mouse.buttons = CHARAT(0) - 0x20; - key->code.mouse.col = CHARAT(1) - 0x20; - key->code.mouse.line = CHARAT(2) - 0x20; - key->modifiers = 0; - *nbytep = 3; - return TERMKEY_RES_KEY; -} - #ifdef DEBUG static void print_buffer(TermKey *tk) {