#include "../termkey.h" #include "taplib.h" #include #include #define streq(a,b) (!strcmp(a,b)) static const char *backspace_is_X(const char *name, const char *val, void *_) { if(streq(name, "key_backspace")) return "X"; return val; } int main(int argc, char *argv[]) { TermKey *tk; TermKeyKey key; plan_tests(3); /* There was never a VT750. We've just made this string up. * This test ensures that the hooked function can invent TI strings for new * terminal types that don't exist in the TI database yet. */ tk = termkey_new_abstract("vt750", TERMKEY_FLAG_NOSTART); termkey_hook_terminfo_getstr(tk, &backspace_is_X, NULL); termkey_start(tk); termkey_push_bytes(tk, "X", 1); is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY after X"); is_int(key.type, TERMKEY_TYPE_KEYSYM, "key.type after X"); is_int(key.code.sym, TERMKEY_SYM_BACKSPACE, "key.code.sym after X"); termkey_destroy(tk); return exit_status(); }