mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 15:15:28 -04:00
tty: vt: define an enum for CSI+m codes
It's always confusing to read all those case 0:, case 1: etc. in csi_* handlers. Define enum entries for all those constants in CSI+m and use them in csi_m(). Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org> Tested-by: Helge Deller <deller@gmx.de> # parisc STI console Link: https://lore.kernel.org/r/20240122110401.7289-10-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d4c0c481e4
commit
09e7f9f6c5
@@ -1676,6 +1676,39 @@ static int vc_t416_color(struct vc_data *vc, int i,
|
||||
return i;
|
||||
}
|
||||
|
||||
enum {
|
||||
CSI_m_DEFAULT = 0,
|
||||
CSI_m_BOLD = 1,
|
||||
CSI_m_HALF_BRIGHT = 2,
|
||||
CSI_m_ITALIC = 3,
|
||||
CSI_m_UNDERLINE = 4,
|
||||
CSI_m_BLINK = 5,
|
||||
CSI_m_REVERSE = 7,
|
||||
CSI_m_PRI_FONT = 10,
|
||||
CSI_m_ALT_FONT1 = 11,
|
||||
CSI_m_ALT_FONT2 = 12,
|
||||
CSI_m_DOUBLE_UNDERLINE = 21,
|
||||
CSI_m_NORMAL_INTENSITY = 22,
|
||||
CSI_m_NO_ITALIC = 23,
|
||||
CSI_m_NO_UNDERLINE = 24,
|
||||
CSI_m_NO_BLINK = 25,
|
||||
CSI_m_NO_REVERSE = 27,
|
||||
CSI_m_FG_COLOR_BEG = 30,
|
||||
CSI_m_FG_COLOR_END = 37,
|
||||
CSI_m_FG_COLOR = 38,
|
||||
CSI_m_DEFAULT_FG_COLOR = 39,
|
||||
CSI_m_BG_COLOR_BEG = 40,
|
||||
CSI_m_BG_COLOR_END = 47,
|
||||
CSI_m_BG_COLOR = 48,
|
||||
CSI_m_DEFAULT_BG_COLOR = 49,
|
||||
CSI_m_BRIGHT_FG_COLOR_BEG = 90,
|
||||
CSI_m_BRIGHT_FG_COLOR_END = 97,
|
||||
CSI_m_BRIGHT_FG_COLOR_OFF = CSI_m_BRIGHT_FG_COLOR_BEG - CSI_m_FG_COLOR_BEG,
|
||||
CSI_m_BRIGHT_BG_COLOR_BEG = 100,
|
||||
CSI_m_BRIGHT_BG_COLOR_END = 107,
|
||||
CSI_m_BRIGHT_BG_COLOR_OFF = CSI_m_BRIGHT_BG_COLOR_BEG - CSI_m_BG_COLOR_BEG,
|
||||
};
|
||||
|
||||
/* console_lock is held */
|
||||
static void csi_m(struct vc_data *vc)
|
||||
{
|
||||
@@ -1683,33 +1716,33 @@ static void csi_m(struct vc_data *vc)
|
||||
|
||||
for (i = 0; i <= vc->vc_npar; i++)
|
||||
switch (vc->vc_par[i]) {
|
||||
case 0: /* all attributes off */
|
||||
case CSI_m_DEFAULT: /* all attributes off */
|
||||
default_attr(vc);
|
||||
break;
|
||||
case 1:
|
||||
case CSI_m_BOLD:
|
||||
vc->state.intensity = VCI_BOLD;
|
||||
break;
|
||||
case 2:
|
||||
case CSI_m_HALF_BRIGHT:
|
||||
vc->state.intensity = VCI_HALF_BRIGHT;
|
||||
break;
|
||||
case 3:
|
||||
case CSI_m_ITALIC:
|
||||
vc->state.italic = true;
|
||||
break;
|
||||
case 21:
|
||||
case CSI_m_DOUBLE_UNDERLINE:
|
||||
/*
|
||||
* No console drivers support double underline, so
|
||||
* convert it to a single underline.
|
||||
*/
|
||||
case 4:
|
||||
case CSI_m_UNDERLINE:
|
||||
vc->state.underline = true;
|
||||
break;
|
||||
case 5:
|
||||
case CSI_m_BLINK:
|
||||
vc->state.blink = true;
|
||||
break;
|
||||
case 7:
|
||||
case CSI_m_REVERSE:
|
||||
vc->state.reverse = true;
|
||||
break;
|
||||
case 10: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
case CSI_m_PRI_FONT: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
* Select primary font, don't display control chars if
|
||||
* defined, don't set bit 8 on output.
|
||||
*/
|
||||
@@ -1717,7 +1750,7 @@ static void csi_m(struct vc_data *vc)
|
||||
vc->vc_disp_ctrl = 0;
|
||||
vc->vc_toggle_meta = 0;
|
||||
break;
|
||||
case 11: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
case CSI_m_ALT_FONT1: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
* Select first alternate font, lets chars < 32 be
|
||||
* displayed as ROM chars.
|
||||
*/
|
||||
@@ -1725,7 +1758,7 @@ static void csi_m(struct vc_data *vc)
|
||||
vc->vc_disp_ctrl = 1;
|
||||
vc->vc_toggle_meta = 0;
|
||||
break;
|
||||
case 12: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
case CSI_m_ALT_FONT2: /* ANSI X3.64-1979 (SCO-ish?)
|
||||
* Select second alternate font, toggle high bit
|
||||
* before displaying as ROM char.
|
||||
*/
|
||||
@@ -1733,47 +1766,54 @@ static void csi_m(struct vc_data *vc)
|
||||
vc->vc_disp_ctrl = 1;
|
||||
vc->vc_toggle_meta = 1;
|
||||
break;
|
||||
case 22:
|
||||
case CSI_m_NORMAL_INTENSITY:
|
||||
vc->state.intensity = VCI_NORMAL;
|
||||
break;
|
||||
case 23:
|
||||
case CSI_m_NO_ITALIC:
|
||||
vc->state.italic = false;
|
||||
break;
|
||||
case 24:
|
||||
case CSI_m_NO_UNDERLINE:
|
||||
vc->state.underline = false;
|
||||
break;
|
||||
case 25:
|
||||
case CSI_m_NO_BLINK:
|
||||
vc->state.blink = false;
|
||||
break;
|
||||
case 27:
|
||||
case CSI_m_NO_REVERSE:
|
||||
vc->state.reverse = false;
|
||||
break;
|
||||
case 38:
|
||||
case CSI_m_FG_COLOR:
|
||||
i = vc_t416_color(vc, i, rgb_foreground);
|
||||
break;
|
||||
case 48:
|
||||
case CSI_m_BG_COLOR:
|
||||
i = vc_t416_color(vc, i, rgb_background);
|
||||
break;
|
||||
case 39:
|
||||
case CSI_m_DEFAULT_FG_COLOR:
|
||||
vc->state.color = (vc->vc_def_color & 0x0f) |
|
||||
(vc->state.color & 0xf0);
|
||||
break;
|
||||
case 49:
|
||||
case CSI_m_DEFAULT_BG_COLOR:
|
||||
vc->state.color = (vc->vc_def_color & 0xf0) |
|
||||
(vc->state.color & 0x0f);
|
||||
break;
|
||||
default:
|
||||
if (vc->vc_par[i] >= 90 && vc->vc_par[i] <= 107) {
|
||||
if (vc->vc_par[i] < 100)
|
||||
if (vc->vc_par[i] >= CSI_m_BRIGHT_FG_COLOR_BEG &&
|
||||
vc->vc_par[i] <= CSI_m_BRIGHT_BG_COLOR_END) {
|
||||
if (vc->vc_par[i] < CSI_m_BRIGHT_BG_COLOR_BEG)
|
||||
vc->state.intensity = VCI_BOLD;
|
||||
vc->vc_par[i] -= 60;
|
||||
vc->vc_par[i] -= CSI_m_BRIGHT_FG_COLOR_OFF;
|
||||
}
|
||||
if (vc->vc_par[i] >= 30 && vc->vc_par[i] <= 37)
|
||||
vc->state.color = color_table[vc->vc_par[i] - 30]
|
||||
| (vc->state.color & 0xf0);
|
||||
else if (vc->vc_par[i] >= 40 && vc->vc_par[i] <= 47)
|
||||
vc->state.color = (color_table[vc->vc_par[i] - 40] << 4)
|
||||
| (vc->state.color & 0x0f);
|
||||
if (vc->vc_par[i] >= CSI_m_FG_COLOR_BEG &&
|
||||
vc->vc_par[i] <= CSI_m_FG_COLOR_END) {
|
||||
vc->vc_par[i] -= CSI_m_FG_COLOR_BEG;
|
||||
vc->state.color = color_table[vc->vc_par[i]] |
|
||||
(vc->state.color & 0xf0);
|
||||
} else if (vc->vc_par[i] >= CSI_m_BG_COLOR_BEG &&
|
||||
vc->vc_par[i] <= CSI_m_BG_COLOR_END) {
|
||||
vc->vc_par[i] -= CSI_m_BG_COLOR_BEG;
|
||||
vc->state.color = (color_table[vc->vc_par[i]] << 4) |
|
||||
(vc->state.color & 0x0f);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
update_attr(vc);
|
||||
|
||||
Reference in New Issue
Block a user