On Mon, Mar 01, 2021 at 10:58:40AM +0300, Egor Ignatov wrote:
From: Egor Ignatov <egori@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.
Use grub_printf() 3 times, because a line wrap will cause
the cursor to get stuck at the end of the terminal line.
Resolves: #60114
Signed-off-by: Egor Ignatov <egori@altlinux.org>
---
grub-core/normal/auth.c | 4 +++-
grub-core/normal/charset.c | 1 +
grub-core/term/gfxterm.c | 11 +++++++++--
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c
index 6be678c0d..ffbf6d890 100644
--- a/grub-core/normal/auth.c
+++ b/grub-core/normal/auth.c
@@ -177,7 +177,9 @@ grub_username_get (char buf[], unsigned buf_size)
if (cur_len)
{
cur_len--;
- grub_printf ("\b \b");
+ grub_printf ("\b");
+ grub_printf (" ");
+ grub_printf ("\b");
}
continue;
}
Is this the part that the commit message refers to? I must admit I
am not quite sure why this change makes a difference, but if it does,
perhaps it is important (and non obvious) enough that the code should
actually have a comment explaining it, or someone might come by and
clean it up again later.