aboutsummaryrefslogtreecommitdiffstats
path: root/nkey.c
diff options
context:
space:
mode:
authorEliteTK <tomasz.kramkowski@gmail.com>2015-06-22 19:25:57 +0100
committerEliteTK <tomasz.kramkowski@gmail.com>2015-06-22 19:25:57 +0100
commitf942f2bcd4c8d0f90ff8dc18c89d9e8aa8b505ca (patch)
tree4a65e23e5052a6eece40768e9b332eb2f6c912c2 /nkey.c
parentda87fcf25e0c94e57f00df84679cd6fadc56ed46 (diff)
parentc38dd32029b7fdc7cb9d1cc4427a43d9d5fb7374 (diff)
downloadc-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.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/nkey.c b/nkey.c
new file mode 100644
index 0000000..de92d66
--- /dev/null
+++ b/nkey.c
@@ -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;
+}