diff options
| author | Juan Manuel Tomás <jtomas1815@gmail.com> | 2020-04-01 16:22:47 -0300 | 
|---|---|---|
| committer | Juan Manuel Tomás <jtomas1815@gmail.com> | 2020-04-01 17:58:13 -0300 | 
| commit | f3f1931ab05bcf220af4f2fe11252f585d07ab51 (patch) | |
| tree | 765f6784cd6e85673a54d80a87023161ae940f83 | |
| parent | c39423d5a45c9740b8ad0336c6e4eac4762bedf5 (diff) | |
| download | jet-f3f1931ab05bcf220af4f2fe11252f585d07ab51.tar.gz jet-f3f1931ab05bcf220af4f2fe11252f585d07ab51.zip | |
Add visual testing for page.c
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | test/page.c | 47 | 
2 files changed, 48 insertions, 0 deletions
| @@ -1 +1,2 @@  jet +page diff --git a/test/page.c b/test/page.c new file mode 100644 index 0000000..322adf2 --- /dev/null +++ b/test/page.c @@ -0,0 +1,47 @@ +#include <curses.h> + +#include "../page.c" + +int main() { +	int exit = 0; +	struct page *p = new_page(); + +	initscr(); +	cbreak(); +	noecho(); +	nonl(); +	intrflush(stdscr, FALSE); +	keypad(stdscr, TRUE); + +	while (!exit) { +		int input = getch(); +		clear(); +		switch (input) { +			case KEY_LEFT: +				move_gap(p, -1); +				break; +			case KEY_RIGHT: +				move_gap(p, 1); +				break; +			case KEY_BACKSPACE: +				delete_from_page(p); +				break; +			default: +				insert_into_page(p, input); +		} +		int gap_start = p->gap_start - p->buffer; +		int gap_end = p->gap_end - p->buffer; +		for (int i = 0; i < gap_start; i++) { +			addch(p->buffer[i]); +		} +		for (int i = gap_start; i < gap_end; i++) { +			addch('_'); +		} +		for (int i = gap_end; i < PAGE_SIZE; i++) { +			addch(p->buffer[i]); +		} +	} + +	endwin(); +	return 0; +} | 
