Message ID | 20230202092447.28590-2-masahisa.kojima@linaro.org |
---|---|
State | New |
Headers | show |
Series | improve eficonfig usability | expand |
On 2/2/23 10:24, Masahisa Kojima wrote: > On the sandbox called without "--terminal raw" CTRL+C leaves U-Boot, > "ESC/CTRL+C to quit" is misleading. > > Let's remove CTRL+C to quit key handling from bootmenu and eficonfig menu. I guess my review was misleading. CTRL+C on the sandbox leaves the u-boot program. Therefore advising its use in the GUI is not a good idea. Reacting on the CTRL+C on other systems does no harm. I will just take the text changes and leave the code as is. Best regards Heinrich > > Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> > --- > cmd/bootmenu.c | 2 +- > cmd/eficonfig.c | 6 +++--- > common/menu.c | 1 - > doc/usage/cmd/bootmenu.rst | 2 +- > lib/efi_loader/efi_console.c | 2 +- > 5 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c > index 3236ca5d79..8dc133c236 100644 > --- a/cmd/bootmenu.c > +++ b/cmd/bootmenu.c > @@ -437,7 +437,7 @@ static void menu_display_statusline(struct menu *m) > printf(ANSI_CURSOR_POSITION, menu->count + 5, 1); > puts(ANSI_CLEAR_LINE); > printf(ANSI_CURSOR_POSITION, menu->count + 6, 3); > - puts("Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"); > + puts("Press UP/DOWN to move, ENTER to select, ESC to quit"); > puts(ANSI_CLEAR_LINE_TO_END); > printf(ANSI_CURSOR_POSITION, menu->count + 7, 1); > puts(ANSI_CLEAR_LINE); > diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c > index 47c04cf536..f365a988d4 100644 > --- a/cmd/eficonfig.c > +++ b/cmd/eficonfig.c > @@ -23,12 +23,12 @@ > > static struct efi_simple_text_input_protocol *cin; > const char *eficonfig_menu_desc = > - " Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"; > + " Press UP/DOWN to move, ENTER to select, ESC to quit"; > > static const char *eficonfig_change_boot_order_desc = > " Press UP/DOWN to move, +/- to change orde\n" > " Press SPACE to activate or deactivate the entry\n" > - " Select [Save] to complete, ESC/CTRL+C to quit"; > + " Select [Save] to complete, ESC to quit"; > > static struct efi_simple_text_output_protocol *cout; > static int avail_row; > @@ -927,7 +927,7 @@ static efi_status_t handle_user_input(u16 *buf, int buf_size, > ANSI_CURSOR_POSITION > "%s" > ANSI_CURSOR_POSITION > - " Press ENTER to complete, ESC/CTRL+C to quit", > + " Press ENTER to complete, ESC to quit", > 0, 1, msg, 8, 1); > > /* tmp is used to accept user cancel */ > diff --git a/common/menu.c b/common/menu.c > index cdcdbb2a18..56401695de 100644 > --- a/common/menu.c > +++ b/common/menu.c > @@ -492,7 +492,6 @@ enum bootmenu_key bootmenu_conv_key(int ichar) > /* enter key was pressed */ > key = BKEY_SELECT; > break; > - case CTL_CH('c'): > case '\e': > /* ^C was pressed */ > key = BKEY_QUIT; > diff --git a/doc/usage/cmd/bootmenu.rst b/doc/usage/cmd/bootmenu.rst > index cb3c8d2f93..684a18d8e1 100644 > --- a/doc/usage/cmd/bootmenu.rst > +++ b/doc/usage/cmd/bootmenu.rst > @@ -122,7 +122,7 @@ Example bootmenu is as below:: > Default behavior when user exits from the bootmenu > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > User can exit from bootmenu by selecting the last entry > -"U-Boot console"/"Quit" or ESC/CTRL+C key. > +"U-Boot console"/"Quit" or ESC key. > > When the CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is disabled, > user exits from the bootmenu and returns to the U-Boot console. > diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c > index 1ed8c7aa36..2c7536107a 100644 > --- a/lib/efi_loader/efi_console.c > +++ b/lib/efi_loader/efi_console.c > @@ -1395,7 +1395,7 @@ efi_status_t efi_console_get_u16_string(struct efi_simple_text_input_protocol *c > } else if (key.unicode_char == u'\r') { > buf[len] = u'\0'; > return EFI_SUCCESS; > - } else if (key.unicode_char == 0x3 || key.scan_code == 23) { > + } else if (key.scan_code == 23) { > return EFI_ABORTED; > } else if (key.unicode_char < 0x20) { > /* ignore control codes other than Ctrl+C, '\r' and '\b' */
On Fri, 10 Feb 2023 at 20:49, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > > On 2/2/23 10:24, Masahisa Kojima wrote: > > On the sandbox called without "--terminal raw" CTRL+C leaves U-Boot, > > "ESC/CTRL+C to quit" is misleading. > > > > Let's remove CTRL+C to quit key handling from bootmenu and eficonfig menu. > > I guess my review was misleading. > > CTRL+C on the sandbox leaves the u-boot program. Therefore advising its > use in the GUI is not a good idea. Reacting on the CTRL+C on other > systems does no harm. > > I will just take the text changes and leave the code as is. I misunderstand your review comment. Thank you for the update. Regards, Masahisa Kojima > > Best regards > > Heinrich > > > > > Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> > > --- > > cmd/bootmenu.c | 2 +- > > cmd/eficonfig.c | 6 +++--- > > common/menu.c | 1 - > > doc/usage/cmd/bootmenu.rst | 2 +- > > lib/efi_loader/efi_console.c | 2 +- > > 5 files changed, 6 insertions(+), 7 deletions(-) > > > > diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c > > index 3236ca5d79..8dc133c236 100644 > > --- a/cmd/bootmenu.c > > +++ b/cmd/bootmenu.c > > @@ -437,7 +437,7 @@ static void menu_display_statusline(struct menu *m) > > printf(ANSI_CURSOR_POSITION, menu->count + 5, 1); > > puts(ANSI_CLEAR_LINE); > > printf(ANSI_CURSOR_POSITION, menu->count + 6, 3); > > - puts("Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"); > > + puts("Press UP/DOWN to move, ENTER to select, ESC to quit"); > > puts(ANSI_CLEAR_LINE_TO_END); > > printf(ANSI_CURSOR_POSITION, menu->count + 7, 1); > > puts(ANSI_CLEAR_LINE); > > diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c > > index 47c04cf536..f365a988d4 100644 > > --- a/cmd/eficonfig.c > > +++ b/cmd/eficonfig.c > > @@ -23,12 +23,12 @@ > > > > static struct efi_simple_text_input_protocol *cin; > > const char *eficonfig_menu_desc = > > - " Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"; > > + " Press UP/DOWN to move, ENTER to select, ESC to quit"; > > > > static const char *eficonfig_change_boot_order_desc = > > " Press UP/DOWN to move, +/- to change orde\n" > > " Press SPACE to activate or deactivate the entry\n" > > - " Select [Save] to complete, ESC/CTRL+C to quit"; > > + " Select [Save] to complete, ESC to quit"; > > > > static struct efi_simple_text_output_protocol *cout; > > static int avail_row; > > @@ -927,7 +927,7 @@ static efi_status_t handle_user_input(u16 *buf, int buf_size, > > ANSI_CURSOR_POSITION > > "%s" > > ANSI_CURSOR_POSITION > > - " Press ENTER to complete, ESC/CTRL+C to quit", > > + " Press ENTER to complete, ESC to quit", > > 0, 1, msg, 8, 1); > > > > /* tmp is used to accept user cancel */ > > diff --git a/common/menu.c b/common/menu.c > > index cdcdbb2a18..56401695de 100644 > > --- a/common/menu.c > > +++ b/common/menu.c > > @@ -492,7 +492,6 @@ enum bootmenu_key bootmenu_conv_key(int ichar) > > /* enter key was pressed */ > > key = BKEY_SELECT; > > break; > > - case CTL_CH('c'): > > case '\e': > > /* ^C was pressed */ > > key = BKEY_QUIT; > > diff --git a/doc/usage/cmd/bootmenu.rst b/doc/usage/cmd/bootmenu.rst > > index cb3c8d2f93..684a18d8e1 100644 > > --- a/doc/usage/cmd/bootmenu.rst > > +++ b/doc/usage/cmd/bootmenu.rst > > @@ -122,7 +122,7 @@ Example bootmenu is as below:: > > Default behavior when user exits from the bootmenu > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > User can exit from bootmenu by selecting the last entry > > -"U-Boot console"/"Quit" or ESC/CTRL+C key. > > +"U-Boot console"/"Quit" or ESC key. > > > > When the CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is disabled, > > user exits from the bootmenu and returns to the U-Boot console. > > diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c > > index 1ed8c7aa36..2c7536107a 100644 > > --- a/lib/efi_loader/efi_console.c > > +++ b/lib/efi_loader/efi_console.c > > @@ -1395,7 +1395,7 @@ efi_status_t efi_console_get_u16_string(struct efi_simple_text_input_protocol *c > > } else if (key.unicode_char == u'\r') { > > buf[len] = u'\0'; > > return EFI_SUCCESS; > > - } else if (key.unicode_char == 0x3 || key.scan_code == 23) { > > + } else if (key.scan_code == 23) { > > return EFI_ABORTED; > > } else if (key.unicode_char < 0x20) { > > /* ignore control codes other than Ctrl+C, '\r' and '\b' */
diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c index 3236ca5d79..8dc133c236 100644 --- a/cmd/bootmenu.c +++ b/cmd/bootmenu.c @@ -437,7 +437,7 @@ static void menu_display_statusline(struct menu *m) printf(ANSI_CURSOR_POSITION, menu->count + 5, 1); puts(ANSI_CLEAR_LINE); printf(ANSI_CURSOR_POSITION, menu->count + 6, 3); - puts("Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"); + puts("Press UP/DOWN to move, ENTER to select, ESC to quit"); puts(ANSI_CLEAR_LINE_TO_END); printf(ANSI_CURSOR_POSITION, menu->count + 7, 1); puts(ANSI_CLEAR_LINE); diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c index 47c04cf536..f365a988d4 100644 --- a/cmd/eficonfig.c +++ b/cmd/eficonfig.c @@ -23,12 +23,12 @@ static struct efi_simple_text_input_protocol *cin; const char *eficonfig_menu_desc = - " Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit"; + " Press UP/DOWN to move, ENTER to select, ESC to quit"; static const char *eficonfig_change_boot_order_desc = " Press UP/DOWN to move, +/- to change orde\n" " Press SPACE to activate or deactivate the entry\n" - " Select [Save] to complete, ESC/CTRL+C to quit"; + " Select [Save] to complete, ESC to quit"; static struct efi_simple_text_output_protocol *cout; static int avail_row; @@ -927,7 +927,7 @@ static efi_status_t handle_user_input(u16 *buf, int buf_size, ANSI_CURSOR_POSITION "%s" ANSI_CURSOR_POSITION - " Press ENTER to complete, ESC/CTRL+C to quit", + " Press ENTER to complete, ESC to quit", 0, 1, msg, 8, 1); /* tmp is used to accept user cancel */ diff --git a/common/menu.c b/common/menu.c index cdcdbb2a18..56401695de 100644 --- a/common/menu.c +++ b/common/menu.c @@ -492,7 +492,6 @@ enum bootmenu_key bootmenu_conv_key(int ichar) /* enter key was pressed */ key = BKEY_SELECT; break; - case CTL_CH('c'): case '\e': /* ^C was pressed */ key = BKEY_QUIT; diff --git a/doc/usage/cmd/bootmenu.rst b/doc/usage/cmd/bootmenu.rst index cb3c8d2f93..684a18d8e1 100644 --- a/doc/usage/cmd/bootmenu.rst +++ b/doc/usage/cmd/bootmenu.rst @@ -122,7 +122,7 @@ Example bootmenu is as below:: Default behavior when user exits from the bootmenu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ User can exit from bootmenu by selecting the last entry -"U-Boot console"/"Quit" or ESC/CTRL+C key. +"U-Boot console"/"Quit" or ESC key. When the CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is disabled, user exits from the bootmenu and returns to the U-Boot console. diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 1ed8c7aa36..2c7536107a 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -1395,7 +1395,7 @@ efi_status_t efi_console_get_u16_string(struct efi_simple_text_input_protocol *c } else if (key.unicode_char == u'\r') { buf[len] = u'\0'; return EFI_SUCCESS; - } else if (key.unicode_char == 0x3 || key.scan_code == 23) { + } else if (key.scan_code == 23) { return EFI_ABORTED; } else if (key.unicode_char < 0x20) { /* ignore control codes other than Ctrl+C, '\r' and '\b' */
On the sandbox called without "--terminal raw" CTRL+C leaves U-Boot, "ESC/CTRL+C to quit" is misleading. Let's remove CTRL+C to quit key handling from bootmenu and eficonfig menu. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> --- cmd/bootmenu.c | 2 +- cmd/eficonfig.c | 6 +++--- common/menu.c | 1 - doc/usage/cmd/bootmenu.rst | 2 +- lib/efi_loader/efi_console.c | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-)