mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12:48 -05:00
xterm apparently supports ESC[90m through ESC[97m to set bright
foreground colours, and ESC[100m through ESC[107m to set bright background colours. Hence, so do we. Bright-foreground is distinguishable from bold, and bright-background distinguishable from blink, when it leaves terminal.c; the front end may then choose to display them in the same way if it's configured to do so. This change makes the xterm backend for Turbo Vision (!!!) work properly. Untested on Mac. [originally from svn r2734]
This commit is contained in:
44
terminal.c
44
terminal.c
@ -474,8 +474,9 @@ void term_size(Terminal *term, int newrows, int newcols, int newsavelines)
|
||||
} else {
|
||||
line = smalloc(TSIZE * (newcols + 2));
|
||||
line[0] = newcols;
|
||||
for (j = 0; j <= newcols; j++)
|
||||
for (j = 0; j < newcols; j++)
|
||||
line[j + 1] = ERASE_CHAR;
|
||||
line[newcols] = LATTR_NORM;
|
||||
}
|
||||
addpos234(term->screen, line, 0);
|
||||
}
|
||||
@ -504,8 +505,9 @@ void term_size(Terminal *term, int newrows, int newcols, int newsavelines)
|
||||
for (i = 0; i < newrows; i++) {
|
||||
line = smalloc(TSIZE * (newcols + 2));
|
||||
line[0] = newcols;
|
||||
for (j = 0; j <= newcols; j++)
|
||||
for (j = 0; j < newcols; j++)
|
||||
line[j + 1] = term->erase_char;
|
||||
line[newcols + 1] = LATTR_NORM;
|
||||
addpos234(newalt, line, i);
|
||||
}
|
||||
if (term->alt_screen) {
|
||||
@ -742,7 +744,7 @@ static void scroll(Terminal *term, int topline, int botline, int lines, int sb)
|
||||
line = resizeline(line, term->cols);
|
||||
for (i = 0; i < term->cols; i++)
|
||||
line[i + 1] = term->erase_char;
|
||||
line[term->cols + 1] = 0;
|
||||
line[term->cols + 1] = LATTR_NORM;
|
||||
addpos234(term->screen, line, botline);
|
||||
|
||||
/*
|
||||
@ -972,10 +974,12 @@ static void erase_lots(Terminal *term,
|
||||
|
||||
ldata = lineptr(start.y);
|
||||
while (poslt(start, end)) {
|
||||
if (start.x == term->cols && !erase_lattr)
|
||||
ldata[start.x] &= ~(LATTR_WRAPPED | LATTR_WRAPPED2);
|
||||
else
|
||||
if (start.x == term->cols) {
|
||||
if (erase_lattr)
|
||||
ldata[start.x] &= ~(LATTR_WRAPPED | LATTR_WRAPPED2);
|
||||
} else {
|
||||
ldata[start.x] = term->erase_char;
|
||||
}
|
||||
if (incpos(start) && start.y < term->rows)
|
||||
ldata = lineptr(start.y);
|
||||
}
|
||||
@ -2281,6 +2285,20 @@ void term_out(Terminal *term)
|
||||
term->curr_attr |=
|
||||
(term->esc_args[i] - 30)<<ATTR_FGSHIFT;
|
||||
break;
|
||||
case 90:
|
||||
case 91:
|
||||
case 92:
|
||||
case 93:
|
||||
case 94:
|
||||
case 95:
|
||||
case 96:
|
||||
case 97:
|
||||
/* xterm-style bright foreground */
|
||||
term->curr_attr &= ~ATTR_FGMASK;
|
||||
term->curr_attr |=
|
||||
((term->esc_args[i] - 90 + 16)
|
||||
<< ATTR_FGSHIFT);
|
||||
break;
|
||||
case 39: /* default-foreground */
|
||||
term->curr_attr &= ~ATTR_FGMASK;
|
||||
term->curr_attr |= ATTR_DEFFG;
|
||||
@ -2298,6 +2316,20 @@ void term_out(Terminal *term)
|
||||
term->curr_attr |=
|
||||
(term->esc_args[i] - 40)<<ATTR_BGSHIFT;
|
||||
break;
|
||||
case 100:
|
||||
case 101:
|
||||
case 102:
|
||||
case 103:
|
||||
case 104:
|
||||
case 105:
|
||||
case 106:
|
||||
case 107:
|
||||
/* xterm-style bright background */
|
||||
term->curr_attr &= ~ATTR_BGMASK;
|
||||
term->curr_attr |=
|
||||
((term->esc_args[i] - 100 + 16)
|
||||
<< ATTR_BGSHIFT);
|
||||
break;
|
||||
case 49: /* default-background */
|
||||
term->curr_attr &= ~ATTR_BGMASK;
|
||||
term->curr_attr |= ATTR_DEFBG;
|
||||
|
Reference in New Issue
Block a user