unsigned long *ldata;
static void erase_lots(Terminal *term,		       int line_only, int from_begin, int to_end){    pos start, end;    int erase_lattr;    unsigned long *ldata;    if (line_only) {	start.y = term->curs.y;	start.x = 0;	end.y = term->curs.y + 1;	end.x = 0;	erase_lattr = FALSE;    } else {	start.y = 0;	start.x = 0;	end.y = term->rows;	end.x = 0;	erase_lattr = TRUE;    }    if (!from_begin) {	start = term->curs;    }    if (!to_end) {	end = term->curs;	incpos(end);    }    if (!from_begin || !to_end)	check_boundary(term, term->curs.x, term->curs.y);    check_selection(term, start, end);    /* Clear screen also forces a full window redraw, just in case. */    if (start.y == 0 && start.x == 0 && end.y == term->rows)	term_invalidate(term);    ldata = lineptr(start.y);    while (poslt(start, end)) {	if (start.x == term->cols) {            if (!erase_lattr)                ldata[start.x] &= ~(LATTR_WRAPPED | LATTR_WRAPPED2);            else                ldata[start.x] = LATTR_NORM;        } else {	    ldata[start.x] = term->erase_char;        }	if (incpos(start) && start.y < term->rows)	    ldata = lineptr(start.y);    }}