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