diff options
author | Tomasz Kramkowski <tk@the-tk.com> | 2015-06-19 19:15:27 +0100 |
---|---|---|
committer | Tomasz Kramkowski <tk@the-tk.com> | 2015-06-19 19:15:27 +0100 |
commit | a72bf3a44e8002181b2818ab557434a2a0a22c96 (patch) | |
tree | 30580e9c6a6d4389f62ef400153cc4c999ca926d /nkey.c | |
parent | 0dc36e29dd1e65b22745ffe4b348047e36f38d1b (diff) | |
download | c-stuff-a72bf3a44e8002181b2818ab557434a2a0a22c96.tar.gz c-stuff-a72bf3a44e8002181b2818ab557434a2a0a22c96.tar.xz c-stuff-a72bf3a44e8002181b2818ab557434a2a0a22c96.zip |
nkey.c; time_diff.c
Diffstat (limited to 'nkey.c')
-rw-r--r-- | nkey.c | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,51 @@ +#include <ncurses.h> +#include <stdio.h> + +int getch_nodelay(void) +{ + int retval; + + nodelay(stdscr, TRUE); + retval = getch(); + nodelay(stdscr, FALSE); + + return retval; +} + +int main(void) +{ + cbreak(); + initscr(); + noecho(); + nonl(); + + keypad(stdscr, TRUE); + + while (1) { + char number[32]; + int c[5] = { + getch(), + getch_nodelay(), + getch_nodelay(), + getch_nodelay(), + getch_nodelay() + }; + + if (c[1] == ERR) + snprintf(number, 32, "%d ", c[0]); + else if (c[2] == ERR) + snprintf(number, 32, "%d-%d ", c[0], c[1]); + else if (c[3] == ERR) + snprintf(number, 32, "%d-%d-%d ", c[0], c[1], c[2]); + else if (c[4] == ERR) + snprintf(number, 32, "%d-%d-%d-%d ", c[0], c[1], c[2], + c[3]); + else if (c[5] == ERR) + snprintf(number, 32, "%d-%d-%d-%d-%d ", c[0], c[1], + c[2], c[3], c[4]); + + addstr(number); + } + + return 0; +} |