/* This routine illustrates the keypad interface. To implement * detection of a single escape character, allow for timeout. */ #include #include #include "demolib.c" #define TIMEOUT 2 /* 2/10 of a second */ static int getch (void) { int ch; while (0 == SLang_input_pending (1000)) continue; ch = SLang_getkey (); if (ch == 033) /* escape */ { if (0 == SLang_input_pending (TIMEOUT)) return 033; } SLang_ungetkey (ch); return SLkp_getkey (); } int main (int argc, char **argv) { int ch; (void) argc; (void) argv; if (-1 == demolib_init_terminal (1, 0)) return 1; fprintf (stderr, "This program illustrates the slkeypad facility.\n"); fprintf (stderr, "Press any key ('q' quits).\n"); while ('q' != (ch = getch ())) { fprintf (stderr, "Keysym: %d\r\n", ch); } demolib_exit (0); return 0; }