From 077cc1d1bb8aac07a90c24522bafa32df92f7e07 Mon Sep 17 00:00:00 2001 From: Brian Barto Date: Mon, 4 Apr 2016 22:07:35 -0400 Subject: [PATCH] Initial code commit. Doesn't really do much now. Just commiting what code I have. new file: nms.c --- nms.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 nms.c 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); +}