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 /test/page.c | |
parent | c39423d5a45c9740b8ad0336c6e4eac4762bedf5 (diff) | |
download | jet-f3f1931ab05bcf220af4f2fe11252f585d07ab51.tar.gz jet-f3f1931ab05bcf220af4f2fe11252f585d07ab51.zip |
Add visual testing for page.c
Diffstat (limited to 'test/page.c')
-rw-r--r-- | test/page.c | 47 |
1 files changed, 47 insertions, 0 deletions
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; +} |