|
|
1.1 root 1: #include <curses.h>
2: #include <ctype.h>
3: #define NORMAL 0
4: #define INY 1
5: #define INX 2
6: main()
7: {
8: int c, y, x, state;
9: initscr(); /* initialize curses */
10: noecho();
11: raw();
12: clear();
13: move(0, 0);
14: for(state = NORMAL;;) {
15: refresh();
16: c = getch();
17: if(isdigit(c)) {
18: switch (state) {
19: case NORMAL:
20: y = x = 0;
21: state = INY;
22: case INY:
23: y *= 10;
24: y += c - '0';
25: break;
26: case INX:
27: x *= 10;
28: x += c - '0';
29: }
30: } else {
31: if (3 == c) { /* ctrl-C */
32: noraw();
33: echo();
34: endwin();
35: exit(0);
36: }
37: switch (state) {
38: case INX:
39: state = NORMAL;
40: move(y, x);
41: case NORMAL:
42: addch(c);
43: break;
44: case INY:
45: state = INX;
46: }
47: }
48: }
49: }
50:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.