void
tclearregion(int x1, int y1, int x2, int y2) {
- int x, y, temp;
+ int x, y, temp, mask;
if(x1 > x2)
temp = x1, x1 = x2, x2 = temp;
for(y = y1; y <= y2; y++) {
term.dirty[y] = 1;
for(x = x1; x <= x2; x++) {
+ mask = selected(x, y) ? ATTR_REVERSE : 0;
term.line[y][x] = term.c.attr;
+ term.line[y][x].mode ^= mask;
memcpy(term.line[y][x].c, " ", 2);
}
}
ic = ib = ox = 0;
for(x = x1; x < x2; x++) {
new = term.line[y][x];
- if(ena_sel && *(new.c) && selected(x, y))
+ if(ena_sel && selected(x, y))
new.mode ^= ATTR_REVERSE;
if(ib > 0 && (ATTRCMP(base, new)
|| ib >= DRAW_BUF_SIZ-UTF_SIZ)) {