]> gitweb.ps.run Git - iftint/blob - main.c
list of words type beat
[iftint] / main.c
1 #include <pdcurses.h>\r
2 \r
3 \r
4 \r
5 int main() {\r
6     initscr();\r
7 \r
8     noecho();\r
9 \r
10     char word[128];\r
11     int index = 0;\r
12 \r
13     int level = 1;\r
14 \r
15     struct Word {\r
16         char str[128];\r
17         int len;\r
18     };\r
19     struct Word words[128];\r
20     int numWords = 1;\r
21     words[0].str[0] = '(';\r
22     words[0].len = 1;\r
23 \r
24     while (true) {\r
25         move(0, 0);\r
26         clear();\r
27         refresh();\r
28 \r
29         for (int i = 0; i < numWords; i++) {\r
30             printw("%.*s\n", words[i].len, words[i].str);\r
31         }\r
32 \r
33 \r
34         int key = getch();\r
35 \r
36         /**/ if (key == ' ') {\r
37             if (index == 0) {\r
38                 if (level > 0) {\r
39                     // end list\r
40                     words[numWords].str[0] = ')';\r
41                     words[numWords].len = 1;\r
42                     numWords++;\r
43                     level--;\r
44                 }\r
45             }\r
46             else {\r
47                 // add to list\r
48                 // for (int i = 0; i < index; i++) {\r
49                 //     words[numWords].str[i] = word[i];\r
50                 // }\r
51                 // words[numWords].len = index;\r
52                 index = 0;\r
53                 // numWords++;\r
54             }\r
55         }\r
56         else if (key == '\n') {\r
57             // if (index == 0) {\r
58                 // // add to list\r
59                 // for (int i = 0; i < index; i++) {\r
60                 //     words[numWords].str[i] = word[i];\r
61                 // }\r
62                 // words[numWords].len = index;\r
63                 // index = 0;\r
64                 // numWords++;\r
65                 \r
66                 // add list\r
67                 words[numWords].str[0] = '(';\r
68                 words[numWords].len = 1;\r
69                 numWords++;\r
70                 level++;\r
71             // }\r
72             index = 0;\r
73         }\r
74         else if (key == 8) {\r
75             if (numWords > 0) {\r
76                 if (words[numWords-1].len == 1 && words[numWords-1].str[0] == '(') level--;\r
77                 if (words[numWords-1].len == 1 && words[numWords-1].str[0] == ')') level++;\r
78                 numWords--;\r
79             }\r
80         }\r
81         else {\r
82             if (index == 0) {\r
83                 numWords++;\r
84                 words[numWords-1].len = 0;\r
85             }\r
86             words[numWords-1].str[index++] = (char)key;\r
87             words[numWords-1].len++;\r
88         }\r
89     }\r
90 \r
91     endwin();\r
92 \r
93     return 0;\r
94 }\r