Complete change of driver internals - peek and return size but don't eat bytes; eat later in getkey()

This commit is contained in:
Paul LeoNerd Evans
2008-12-10 00:23:47 +00:00
parent eee8ddcee3
commit ef669c134d
4 changed files with 48 additions and 38 deletions

View File

@@ -260,7 +260,7 @@ static void free_driver(void *info)
#define CHARAT(i) (tk->buffer[tk->buffstart + (i)])
static termkey_result getkey(termkey_t *tk, void *info, termkey_key *key, int force)
static termkey_result peekkey(termkey_t *tk, void *info, termkey_key *key, int force, size_t *nbytep)
{
termkey_ti *ti = info;
@@ -282,7 +282,7 @@ static termkey_result getkey(termkey_t *tk, void *info, termkey_key *key, int fo
key->type = nk->key.type;
key->code.sym = nk->key.sym;
key->modifiers = nk->key.modifier_set;
(*tk->method.eat_bytes)(tk, pos);
*nbytep = pos;
return TERMKEY_RES_KEY;
}
}
@@ -456,5 +456,5 @@ struct termkey_driver termkey_driver_ti = {
.start_driver = start_driver,
.stop_driver = stop_driver,
.getkey = getkey,
.peekkey = peekkey,
};