浏览代码

menu: Return an error code if Ctrl-C is pressed

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@iki.fi>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tuomas Tynkkynen 10 年之前
父节点
当前提交
9b081d8893
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      common/menu.c

+ 3 - 0
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);
 			}