[U-Boot] [PATCH 2/2] menu: Return an error code if Ctrl-C is pressed
Simon Glass
sjg at chromium.org
Fri May 8 00:23:11 CEST 2015
Hi Tuomas,
On 7 May 2015 at 12:29, Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi> wrote:
> Previously, if the menu activated by the 'sysboot' command gets
> interrupted by a Ctrl-C, the behaviour is as if the menu timeout was
> reached - i.e. boot the default menu entry. This patch fixes that
> so a Ctrl-C now terminates the command as the user would expect.
>
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>
> ---
> common/menu.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git common/menu.c common/menu.c
> index e81c074..eda96d6 100644
> --- common/menu.c
> +++ common/menu.c
> @@ -202,6 +202,9 @@ static inline int menu_interactive_choice(struct menu *m, void **choice)
> choice_item = menu_item_by_key(m, cbuf);
> if (!choice_item)
> printf("%s not found\n", cbuf);
> + } else if (readret == -1) {
> + printf("<INTERRUPT>\n");
> + return -EINTR;
> } else {
> return menu_default_choice(m, choice);
> }
> --
> 2.4.0
>
Reviewed-by: Simon Glass <sjg at chromium.org>
If you feel like doing another patch, you could update the
cli_readline_into_buffer() and cread_line() to describe the meaning of
the return values (-1 and -2). Even better if you can use -EINTR and
-ETIMEDOUT.
Regards,
Simon
More information about the U-Boot
mailing list