From: Egor Ignatov <eg...@altlinux.org> Make backspace work in superuser login prompt.
The problem was that bidi logical to visual ignored BN type, so you couldn't print control characters. Resolves: #60114 Signed-off-by: Egor Ignatov <eg...@altlinux.org> --- grub-core/normal/charset.c | 1 + grub-core/term/gfxterm.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c index 4dfcc3107..77073c12f 100644 --- a/grub-core/normal/charset.c +++ b/grub-core/normal/charset.c @@ -931,6 +931,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, pop_stack (); break; case GRUB_BIDI_TYPE_BN: + visual_len++; break; case GRUB_BIDI_TYPE_R: case GRUB_BIDI_TYPE_AL: diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c index af7c090a3..5b0660cd2 100644 --- a/grub-core/term/gfxterm.c +++ b/grub-core/term/gfxterm.c @@ -847,7 +847,14 @@ grub_gfxterm_putchar (struct grub_term_output *term, { case '\b': if (virtual_screen.cursor_x > 0) - virtual_screen.cursor_x--; + { + virtual_screen.cursor_x--; + } + else if (virtual_screen.cursor_y > 0) + { + virtual_screen.cursor_y--; + virtual_screen.cursor_x = virtual_screen.columns-2; + } break; case '\n': -- 2.25.4 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel