diff --git a/nms.c b/nms.c new file mode 100644 index 0000000..d5ecee2 --- /dev/null +++ b/nms.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include + +#define SPACE 040 +#define NEWLINE 012 + +int getTermSizeRows(void); +int getTermSizeCols(void); +void clearTermWindow(int, int); + +int main(void) { + int termSizeRows = getTermSizeRows(); + int termSizeCols = getTermSizeCols(); + char inputBuffer[termSizeRows * termSizeCols]; + + clearTermWindow(termSizeRows, termSizeCols); + + // Geting input + int c; + while ((c = getchar()) != EOF) { + if (isspace(c)) + putchar(c); + else + putchar('x'); + } + + return 0; +} + +int getTermSizeRows(void) { + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + + return w.ws_row; +} + +int getTermSizeCols(void) { + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + + return w.ws_col; +} + +void clearTermWindow(int pRows, int pCols) { + int row, col; + + printf("rows: %i, cols: %i\n", pRows, pCols); + // Clearing window + for (row = 1; row <= pRows; ++row) { + for (col = 1; col <= pCols; ++col) + printf("\033[%i;%iH%c", row, col, SPACE); + printf("\033[%i;%iH%c", row, col, NEWLINE); + } + + // Position cursor at the top + printf("\033[%i;%iH", 1, 1); +}