]> gitweb.ps.run Git - iftint/blobdiff - main.c
PeekChar -> peeckh (?)
[iftint] / main.c
diff --git a/main.c b/main.c
index ae6c646f3c8c67e9a73f6deeeefa15c6ccfb51fe..41148d20e38dab2597ae49e5603b28d928c3cbaf 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,4 +1,9 @@
+#ifdef _WIN32\r
 #include <pdcurses.h>\r
+#else\r
+#include <ncurses.h>\r
+#endif\r
+\r
 \r
 \r
 \r
@@ -12,43 +17,80 @@ int main() {
 \r
     int level = 1;\r
 \r
-    char words[10][128];\r
+    struct Word {\r
+        char str[128];\r
+        int len;\r
+    };\r
+    struct Word words[128];\r
     int numWords = 1;\r
-    words[0][0] = '(';\r
+    words[0].str[0] = '(';\r
+    words[0].len = 1;\r
 \r
     while (true) {\r
+        move(0, 0);\r
+        clear();\r
+        refresh();\r
+\r
+        for (int i = 0; i < numWords; i++) {\r
+            printw("%.*s\n", words[i].len, words[i].str);\r
+        }\r
+\r
+\r
         int key = getch();\r
 \r
         /**/ if (key == ' ') {\r
             if (index == 0) {\r
                 if (level > 0) {\r
                     // end list\r
-                    printw(")");\r
+                    words[numWords].str[0] = ')';\r
+                    words[numWords].len = 1;\r
+                    numWords++;\r
                     level--;\r
                 }\r
             }\r
             else {\r
                 // add to list\r
-                printw("%.*s ", index, word);\r
+                // for (int i = 0; i < index; i++) {\r
+                //     words[numWords].str[i] = word[i];\r
+                // }\r
+                // words[numWords].len = index;\r
                 index = 0;\r
+                // numWords++;\r
             }\r
         }\r
         else if (key == '\n') {\r
-            if (index == 0) {\r
-                // add to list\r
-                printw("%.*s ", index, word);\r
-                index = 0;\r
+            // if (index == 0) {\r
+                // // add to list\r
+                // for (int i = 0; i < index; i++) {\r
+                //     words[numWords].str[i] = word[i];\r
+                // }\r
+                // words[numWords].len = index;\r
+                // index = 0;\r
+                // numWords++;\r
                 \r
                 // add list\r
-                printw("\n");\r
-                for (int i = 0; i < level; i++)\r
-                    printw(" ");\r
-                printw("(");\r
+                words[numWords].str[0] = '(';\r
+                words[numWords].len = 1;\r
+                numWords++;\r
                 level++;\r
+            // }\r
+            index = 0;\r
+        }\r
+        else if (key == 8 || key == 127) {\r
+            if (numWords > 0) {\r
+                if (words[numWords-1].len == 1 && words[numWords-1].str[0] == '(') level--;\r
+                if (words[numWords-1].len == 1 && words[numWords-1].str[0] == ')') level++;\r
+                numWords--;\r
             }\r
         }\r
         else {\r
-            word[index++] = (char)key;\r
+            if (index == 0) {\r
+                numWords++;\r
+                words[numWords-1].len = 0;\r
+            }\r
+            printw("%d\n", key);\r
+            words[numWords-1].str[index++] = (char)key;\r
+            words[numWords-1].len++;\r
         }\r
     }\r
 \r