X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/cdf249c78562c0367968ad6de964245d271524ac..c6f1b8ed877667ff8b75e5dda5a89cd54ffccfbb:/terminal.c diff --git a/terminal.c b/terminal.c index 9f0f0615..25c2cfda 100644 --- a/terminal.c +++ b/terminal.c @@ -177,6 +177,8 @@ static void cc_check(termline *line) j += (flags[i] != 0); assert(j == line->size); + + sfree(flags); } /* @@ -433,6 +435,9 @@ static void makerle(struct buf *b, termline *ldata, hdrpos = b->len; hdrsize = 0; add(b, 0); + /* And ensure this run doesn't interfere with the next. */ + prevlen = prevpos = 0; + prev2 = FALSE; continue; } else { @@ -1667,7 +1672,7 @@ static void scroll(Terminal *term, int topline, int botline, int lines, int sb) addpos234(term->scrollback, compressline(line), sblen); - line = newline(term, term->cols, TRUE); + /* now `line' itself can be reused as the bottom line */ /* * If the user is currently looking at part of the @@ -4442,6 +4447,10 @@ static void do_paint(Terminal *term, Context ctx, int may_optimise) tchar = d->chr; tattr = d->attr; + if (!term->cfg.ansi_colour) + tattr = (tattr & ~(ATTR_FGMASK | ATTR_BGMASK)) | + ATTR_DEFFG | ATTR_DEFBG; + switch (tchar & CSET_MASK) { case CSET_ASCII: tchar = term->ucsdata->unitab_line[tchar & 0xFF];