summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2016-03-11 23:17:28 -0800
committerStefan Reinauer <stefan.reinauer@coreboot.org>2016-03-18 21:47:46 +0100
commitc2b50ace1b04c90c27dae8d5999c14f925b93c65 (patch)
tree91f71f55d7f474e18cac67ce95f4ad58d7caa306
parentf3f654ddb90fedfb72eab99db6f9893e898ffbff (diff)
downloadcoreboot-c2b50ace1b04c90c27dae8d5999c14f925b93c65.tar.xz
coreinfo: Allow numbers in addition to F keys
When using coreinfo on a serial console (at least with gtkterm, picocom and minicom on Ubuntu 15.10) you can't send F keys to the payload. Allow 1..9 for F1..F9 Change-Id: Ie3a11fa1de57c7345737a1ccaff177f407cd5e48 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/14065 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--payloads/coreinfo/coreinfo.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/payloads/coreinfo/coreinfo.c b/payloads/coreinfo/coreinfo.c
index 8a6b3f53c3..449ac5d5b0 100644
--- a/payloads/coreinfo/coreinfo.c
+++ b/payloads/coreinfo/coreinfo.c
@@ -247,6 +247,8 @@ static void loop(void)
halfdelay(10);
while (1) {
+ int ch = -1;
+
#if IS_ENABLED(CONFIG_SHOW_DATE_TIME)
print_time_and_date();
wrefresh(menuwin);
@@ -257,20 +259,21 @@ static void loop(void)
if (key == ERR)
continue;
- if (key >= KEY_F(1) && key <= KEY_F(9)) {
- unsigned char ch = key - KEY_F(1);
-
- if (ch <= ARRAY_SIZE(categories)) {
- if (ch == ARRAY_SIZE(categories))
- continue;
- if (categories[ch].count == 0)
- continue;
+ if (key >= KEY_F(1) && key <= KEY_F(9))
+ ch = key - KEY_F(1);
+ if (key >= '1' && key <= '9')
+ ch = key - '1';
- curwin = ch;
- print_submenu(&categories[curwin]);
- redraw_module(&categories[curwin]);
+ if (ch >= 0 && ch <= ARRAY_SIZE(categories)) {
+ if (ch == ARRAY_SIZE(categories))
+ continue;
+ if (categories[ch].count == 0)
continue;
- }
+
+ curwin = ch;
+ print_submenu(&categories[curwin]);
+ redraw_module(&categories[curwin]);
+ continue;
}
if (key == KEY_ESC)