grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug #60114: The "Backspace" key doesn't work correctly in the superu


From: Daniel Kiper
Subject: Re: bug #60114: The "Backspace" key doesn't work correctly in the superuser authentication prompt.
Date: Fri, 26 Feb 2021 18:51:19 +0100
User-agent: NeoMutt/20170113 (1.7.2)

On Fri, Feb 26, 2021 at 02:53:47PM +0300, Egor Ignatov wrote:
> Hi, yesterday I submitted a bug report about wrong backspace key behavior in
> superuser login prompt and I finally found it. So I attach patch with my fix
> so it can be merged into upstream.
>

> >From a227f1a2c54aa420e016ffb5ca1c41fe93a2bd68 Mon Sep 17 00:00:00 2001
> From: Egor Ignatov <egori@altlinux.org>
> Date: Fri, 26 Feb 2021 12:08:23 +0300
> Subject: [PATCH] Fix backspace in username prompt

May I ask you to use "git send-email" to send the patch?

Additionally, could you explain in the commit message why this patch is
needed and what it does? And of course add your SOB...

> ---
>  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");

Why could not you leave original grub_printf() call?

>           }
>         continue;
>       }
> 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..130d33988 100644
> --- a/grub-core/term/gfxterm.c
> +++ b/grub-core/term/gfxterm.c
> @@ -846,8 +846,15 @@ grub_gfxterm_putchar (struct grub_term_output *term,
>        switch (c->base)
>          {
>          case '\b':
> -          if (virtual_screen.cursor_x > 0)
> -            virtual_screen.cursor_x--;
> +       if (virtual_screen.cursor_x > 0)
> +         {
> +           virtual_screen.cursor_x--;
> +         }

I think you can leave original "if" as is.

> +       else if (virtual_screen.cursor_y > 0)
> +         {
> +           virtual_screen.cursor_y--;
> +           virtual_screen.cursor_x = virtual_screen.columns-2;
> +         }

Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]