X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=madtty%2Fmadtty.c;h=251780fa2f3222c1931657dcbd48bf06d7dc1dac;hb=eccf6c1911e647ad25dc932fbaeb0901f60ec023;hp=af12870e22b4e638887f1fe2b60f263beb4e1c70;hpb=344da508603eba149c55ff34202306daa47d5f7e;p=apps%2Fmadtty.git diff --git a/madtty/madtty.c b/madtty/madtty.c index af12870..251780f 100644 --- a/madtty/madtty.c +++ b/madtty/madtty.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -33,9 +32,19 @@ #include #include #include - +#ifdef __linux__ +# include +#elif defined(__FreeBSD__) +# include +#elif defined(__OpenBSD__) +# include +#endif #include "madtty.h" +#ifndef NCURSES_ATTR_SHIFT +# define NCURSES_ATTR_SHIFT 8 +#endif + #define IS_CONTROL(ch) !((ch) & 0xffffff60UL) static int has_default = 0; @@ -847,6 +856,8 @@ void madtty_resize(madtty_t *t, int rows, int cols) lines[row].attr = realloc(lines[row].attr, sizeof(uint16_t) * cols); if (t->cols < cols) t_row_set(lines + row, t->cols, cols - t->cols, 0); + else + lines[row].dirty = true; } t->cols = cols; } @@ -854,14 +865,13 @@ void madtty_resize(madtty_t *t, int rows, int cols) while (t->rows < rows) { lines[t->rows].text = (wchar_t *)calloc(sizeof(wchar_t), cols); lines[t->rows].attr = (uint16_t *)calloc(sizeof(uint16_t), cols); + t_row_set(lines + t->rows, 0, t->cols, 0); t->rows++; } t->curs_row += lines - t->lines; - t->scroll_top += lines - t->lines; - t->scroll_bot += lines - t->lines; - if (t->scroll_bot > lines + t->rows) - t->scroll_bot = lines + t->rows; + t->scroll_top = lines; + t->scroll_bot = lines + rows; t->lines = lines; clamp_cursor_to_bounds(t); ioctl(t->pty, TIOCSWINSZ, &ws);