From: Kevin O'Connor Date: Wed, 29 Dec 2010 18:25:18 +0000 (-0500) Subject: Simplify keyboard reading code in the interactive boot menu. X-Git-Tag: rel-0.6.2~29 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=551caa21eb8fa4f7cd2971e48999b60f3619b519;p=seabios.git Simplify keyboard reading code in the interactive boot menu. --- diff --git a/src/boot.c b/src/boot.c index d37e10f..a93bb5f 100644 --- a/src/boot.c +++ b/src/boot.c @@ -275,27 +275,27 @@ interactive_bootmenu(void) pos = pos->next; } + // Get key press for (;;) { scan_code = get_keystroke(1000); - if (scan_code == 0x01) - // ESC + if (scan_code >= 1 && scan_code <= maxmenu+1) break; - if (scan_code < 1 || scan_code > maxmenu+1) - continue; - int choice = scan_code - 1; - - // Find entry and make top priority. - struct bootentry_s **pprev = &BootList; - while (--choice) - pprev = &(*pprev)->next; - pos = *pprev; - *pprev = pos->next; - pos->next = BootList; - BootList = pos; - pos->priority = 0; - break; } printf("\n"); + if (scan_code == 0x01) + // ESC + return; + + // Find entry and make top priority. + int choice = scan_code - 1; + struct bootentry_s **pprev = &BootList; + while (--choice) + pprev = &(*pprev)->next; + pos = *pprev; + *pprev = pos->next; + pos->next = BootList; + BootList = pos; + pos->priority = 0; } static int HaveHDBoot, HaveFDBoot;