Some UEFI keyboard drivers are blissfully unaware of the existence of
either Ctrl key, and will report "Ctrl-<key>" as just "<key>". This
breaks substantial portions of the iPXE user interface.
Work around these broken UEFI drivers by allowing "ESC <key>" to be
used as a substitute for "Ctrl-<key>".
Tested-by: Dreamcat4 <dreamcat4@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
if ( character != ESC )
return character;
+ character = getchar_timeout ( GETKEY_TIMEOUT );
+ if ( character < 0 )
+ return ESC;
+
+ if ( isalpha ( character ) )
+ return ( toupper ( character ) - 'A' + 1 );
+
while ( ( character = getchar_timeout ( GETKEY_TIMEOUT ) ) >= 0 ) {
- if ( character == '[' )
- continue;
if ( isdigit ( character ) ) {
n = ( ( n * 10 ) + ( character - '0' ) );
continue;