From aef24a4d43598bd1f65951611e6338a597fc7bc0 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 13 Sep 2014 15:05:57 -0400 Subject: example program to make sure the library works --- examples/test1.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/test1.c (limited to 'examples') diff --git a/examples/test1.c b/examples/test1.c new file mode 100644 index 0000000..bad0023 --- /dev/null +++ b/examples/test1.c @@ -0,0 +1,50 @@ +#include +#include +#include + +#include "vt100.h" + +int main(int argc, char *argv[]) +{ + VT100Screen vt; + char buf[4096]; + size_t offset = 0; + int i, j, skip; + + memset(&vt, 0, sizeof(VT100Screen)); + vt100_screen_init(&vt); + vt100_screen_set_window_size(&vt); + + for (;;) { + size_t bytes, parsed; + + bytes = fread(buf + offset, 1, 4096 - offset, stdin); + if (bytes < 1) + break; + + parsed = vt100_screen_process_string(&vt, buf, bytes + offset); + if (parsed < bytes + offset) { + memcpy(buf, buf + parsed, bytes - parsed); + offset = bytes - parsed; + } + } + + skip = 0; + for (i = vt.grid->row_top; i < vt.grid->row_top + vt.grid->max.row; ++i) { + for (j = 0; j < vt.grid->max.col; ++j) { + if (skip) { + skip = 0; + continue; + } + struct vt100_cell *cell = &vt.grid->rows[i].cells[j]; + printf("%*s", cell->len, cell->contents); + if (cell->is_wide) + skip = 1; + } + printf("\n"); + } + + vt100_screen_cleanup(&vt); + + return 0; +} -- cgit v1.2.3