From a503403226e4e2a929efddd4a2d0daad9c33c596 Mon Sep 17 00:00:00 2001 From: Paul LeoNerd Evans Date: Thu, 7 Feb 2008 00:58:41 +0000 Subject: Initial attempt --- demo.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 demo.c (limited to 'demo.c') diff --git a/demo.c b/demo.c new file mode 100644 index 0000000..512a99f --- /dev/null +++ b/demo.c @@ -0,0 +1,47 @@ +#include +#include +#include +#include + +#include "termkey.h" + +int main(int argc, char *argv[]) { + struct termios termios; + + if(tcgetattr(0, &termios)) { + perror("ioctl(TCIOGETS)"); + exit(1); + } + + int old_lflag = termios.c_lflag; + termios.c_lflag &= ~(ICANON|ECHO); + + tcsetattr(0, TCSANOW, &termios); + + termkey_t *tk = termkey_new(0, TERMKEY_FLAG_CONVERTKP); + + termkey_key key; + + while(termkey_waitkey(tk, &key) && key.code != TERMKEY_SYM_EOF) { + if(key.flags & TERMKEY_KEYFLAG_SPECIAL) + printf("Key %s%s%s%s (code %d)\n", + key.modifiers & TERMKEY_KEYMOD_SHIFT ? "S-" : "", + key.modifiers & TERMKEY_KEYMOD_ALT ? "A-" : "", + key.modifiers & TERMKEY_KEYMOD_CTRL ? "C-" : "", + termkey_describe_sym(key.code), + key.code); + else + printf("Key %s%s%s%s (U+%04X)\n", + key.modifiers & TERMKEY_KEYMOD_SHIFT ? "S-" : "", + key.modifiers & TERMKEY_KEYMOD_ALT ? "A-" : "", + key.modifiers & TERMKEY_KEYMOD_CTRL ? "C-" : "", + key.utf8, + key.code); + + if(key.modifiers & TERMKEY_KEYMOD_CTRL && key.code == 'C') + break; + } + + termios.c_lflag = old_lflag; + tcsetattr(0, TCSANOW, &termios); +} -- cgit v1.2.3