diff options
author | EliteTK <tomasz.kramkowski@gmail.com> | 2015-06-22 19:25:57 +0100 |
---|---|---|
committer | EliteTK <tomasz.kramkowski@gmail.com> | 2015-06-22 19:25:57 +0100 |
commit | f942f2bcd4c8d0f90ff8dc18c89d9e8aa8b505ca (patch) | |
tree | 4a65e23e5052a6eece40768e9b332eb2f6c912c2 /nkey.c | |
parent | da87fcf25e0c94e57f00df84679cd6fadc56ed46 (diff) | |
parent | c38dd32029b7fdc7cb9d1cc4427a43d9d5fb7374 (diff) | |
download | c-stuff-f942f2bcd4c8d0f90ff8dc18c89d9e8aa8b505ca.tar.gz c-stuff-f942f2bcd4c8d0f90ff8dc18c89d9e8aa8b505ca.tar.xz c-stuff-f942f2bcd4c8d0f90ff8dc18c89d9e8aa8b505ca.zip |
Merge branch 'master' of https://github.com/EliteTK/c-stuff
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; +} |