#include #include #include "buffer.h" typedef struct Rect Rect; typedef struct Window Window; /* origin upper left corner */ struct Rect { int r0, c0, rows, cols; }; struct Window { Buffer buffer[2], *buf; Rect area; /* on screen */ Pen pen, spen; /* current and saved pen */ struct { uint visible : 1; int row, col; /* saved cursor row/colmn (zero based) */ int srow, scol; /* saved cursor row/colmn (zero based) */ } c; } /* functions */ Window * makewindow( t->pen = (Pen) { .state = PenNormal, .col = {-1, -1}, }; t->buffer = &t->buf[0]; if (!binit(&t->buf[0], rows, cols, size) || !binit(&t->buf[1], rows, cols, 0)) { free(t); return nil; }