summaryrefslogtreecommitdiffstats
path: root/drivers/tty/vt
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2020-06-15 09:48:37 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-06-24 17:08:31 +0200
commitb70ec4d97f4cc4f6f804ca57419d070b80a9874e (patch)
tree88e2ac5845ed8b0f1f89e7ef4deabe8cbaa483d2 /drivers/tty/vt
parentvt: deduplicate setGx code (diff)
downloadlinux-b70ec4d97f4cc4f6f804ca57419d070b80a9874e.tar.xz
linux-b70ec4d97f4cc4f6f804ca57419d070b80a9874e.zip
vt: switch G0/1_charset to an array
Declare Gx_charset[2] instead of G0_charset and G1_charset. It makes the code simpler (without ternary operators). Signed-off-by: Jiri Slaby <jslaby@suse.cz> Link: https://lore.kernel.org/r/20200615074910.19267-5-jslaby@suse.cz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/vt')
-rw-r--r--drivers/tty/vt/vt.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 729c7c8c682b..4e79cda0c2be 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1743,9 +1743,7 @@ static void csi_m(struct vc_data *vc)
* Select primary font, don't display control chars if
* defined, don't set bit 8 on output.
*/
- vc->vc_translate = set_translate(vc->state.charset == 0
- ? vc->state.G0_charset
- : vc->state.G1_charset, vc);
+ vc->vc_translate = set_translate(vc->state.Gx_charset[vc->state.charset], vc);
vc->vc_disp_ctrl = 0;
vc->vc_toggle_meta = 0;
break;
@@ -2041,8 +2039,8 @@ static void restore_cur(struct vc_data *vc)
memcpy(&vc->state, &vc->saved_state, sizeof(vc->state));
gotoxy(vc, vc->state.x, vc->state.y);
- vc->vc_translate = set_translate(vc->state.charset ? vc->state.G1_charset :
- vc->state.G0_charset, vc);
+ vc->vc_translate = set_translate(vc->state.Gx_charset[vc->state.charset],
+ vc);
update_attr(vc);
vc->vc_need_wrap = 0;
}
@@ -2059,8 +2057,8 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
vc->vc_state = ESnormal;
vc->vc_priv = EPecma;
vc->vc_translate = set_translate(LAT1_MAP, vc);
- vc->state.G0_charset = LAT1_MAP;
- vc->state.G1_charset = GRAF_MAP;
+ vc->state.Gx_charset[0] = LAT1_MAP;
+ vc->state.Gx_charset[1] = GRAF_MAP;
vc->state.charset = 0;
vc->vc_need_wrap = 0;
vc->vc_report_mouse = 0;
@@ -2105,8 +2103,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
static void vc_setGx(struct vc_data *vc, unsigned int which, int c)
{
- unsigned char *charset = which == 0 ? &vc->state.G0_charset :
- &vc->state.G1_charset;
+ unsigned char *charset = &vc->state.Gx_charset[which];
switch (c) {
case '0':
@@ -2168,12 +2165,12 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, int c)
return;
case 14:
vc->state.charset = 1;
- vc->vc_translate = set_translate(vc->state.G1_charset, vc);
+ vc->vc_translate = set_translate(vc->state.Gx_charset[1], vc);
vc->vc_disp_ctrl = 1;
return;
case 15:
vc->state.charset = 0;
- vc->vc_translate = set_translate(vc->state.G0_charset, vc);
+ vc->vc_translate = set_translate(vc->state.Gx_charset[0], vc);
vc->vc_disp_ctrl = 0;
return;
case 24: case 26: