mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-03-06 03:32:05 +00:00
tty vt: Fix a regression in command line edition
The commit 81732c3b2fede049a692e58a7ceabb6d18ffb18c ("Fix line garbage in virtual console on command line edition") made a regression with some machines: some characters were not erased after line edition. This patch adjusts the number of moved characters and the size of the region to be updated. Signed-off-by: Jean-François Moine <moinejf@free.fr> Tested-by: Krzysztof Mazur <krzysiek@podlesie.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f4a75d2eb7
commit
b1a925f44a
@ -539,25 +539,25 @@ static void insert_char(struct vc_data *vc, unsigned int nr)
|
|||||||
{
|
{
|
||||||
unsigned short *p = (unsigned short *) vc->vc_pos;
|
unsigned short *p = (unsigned short *) vc->vc_pos;
|
||||||
|
|
||||||
scr_memmovew(p + nr, p, vc->vc_cols - vc->vc_x);
|
scr_memmovew(p + nr, p, (vc->vc_cols - vc->vc_x) * 2);
|
||||||
scr_memsetw(p, vc->vc_video_erase_char, nr * 2);
|
scr_memsetw(p, vc->vc_video_erase_char, nr * 2);
|
||||||
vc->vc_need_wrap = 0;
|
vc->vc_need_wrap = 0;
|
||||||
if (DO_UPDATE(vc))
|
if (DO_UPDATE(vc))
|
||||||
do_update_region(vc, (unsigned long) p,
|
do_update_region(vc, (unsigned long) p,
|
||||||
(vc->vc_cols - vc->vc_x) / 2 + 1);
|
vc->vc_cols - vc->vc_x);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void delete_char(struct vc_data *vc, unsigned int nr)
|
static void delete_char(struct vc_data *vc, unsigned int nr)
|
||||||
{
|
{
|
||||||
unsigned short *p = (unsigned short *) vc->vc_pos;
|
unsigned short *p = (unsigned short *) vc->vc_pos;
|
||||||
|
|
||||||
scr_memcpyw(p, p + nr, vc->vc_cols - vc->vc_x - nr);
|
scr_memcpyw(p, p + nr, (vc->vc_cols - vc->vc_x - nr) * 2);
|
||||||
scr_memsetw(p + vc->vc_cols - vc->vc_x - nr, vc->vc_video_erase_char,
|
scr_memsetw(p + vc->vc_cols - vc->vc_x - nr, vc->vc_video_erase_char,
|
||||||
nr * 2);
|
nr * 2);
|
||||||
vc->vc_need_wrap = 0;
|
vc->vc_need_wrap = 0;
|
||||||
if (DO_UPDATE(vc))
|
if (DO_UPDATE(vc))
|
||||||
do_update_region(vc, (unsigned long) p,
|
do_update_region(vc, (unsigned long) p,
|
||||||
(vc->vc_cols - vc->vc_x) / 2);
|
vc->vc_cols - vc->vc_x);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int softcursor_original;
|
static int softcursor_original;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user