aboutsummaryrefslogtreecommitdiffstats
path: root/nkey.c
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2015-06-19 19:15:27 +0100
committerTomasz Kramkowski <tk@the-tk.com>2015-06-19 19:15:27 +0100
commita72bf3a44e8002181b2818ab557434a2a0a22c96 (patch)
tree30580e9c6a6d4389f62ef400153cc4c999ca926d /nkey.c
parent0dc36e29dd1e65b22745ffe4b348047e36f38d1b (diff)
downloadc-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.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;
+}