mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 13:16:22 +00:00
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:
parent
bc9d077a8d
commit
798d8b1cfe
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user