tty: vt: add new helper for reseting vc parameters

The code to reset the vc parameter parsing is repeated on two locations.
Create a helper vc_reset_params() and use it on both of them.

And instead of a 'for' loop to clear the array of parameters, use
simpler memset().

Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20240202065608.14019-19-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jiri Slaby (SUSE) 2024-02-02 07:56:04 +01:00 committed by Greg Kroah-Hartman
parent bc9d077a8d
commit 798d8b1cfe

View File

@ -2548,6 +2548,12 @@ static void csi_ECMA(struct tty_struct *tty, struct vc_data *vc, u8 c)
}
static void vc_reset_params(struct vc_data *vc)
{
memset(vc->vc_par, 0, sizeof(vc->vc_par));
vc->vc_npar = 0;
}
/* console_lock is held */
static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
{
@ -2568,9 +2574,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
return;
case ESnonstd: /* ESC ] aka OSC */
if (c=='P') { /* palette escape sequence */
for (vc->vc_npar = 0; vc->vc_npar < NPAR; vc->vc_npar++)
vc->vc_par[vc->vc_npar] = 0;
vc->vc_npar = 0;
vc_reset_params(vc);
vc->vc_state = ESpalette;
return;
} else if (c=='R') { /* reset palette */
@ -2599,9 +2603,8 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
vc->vc_state = ESnormal;
return;
case ESsquare: /* ESC [ aka CSI, parameters or modifiers expected */
for (vc->vc_npar = 0; vc->vc_npar < NPAR; vc->vc_npar++)
vc->vc_par[vc->vc_npar] = 0;
vc->vc_npar = 0;
vc_reset_params(vc);
vc->vc_state = ESgetpars;
switch (c) {
case '[': /* Function key */