=== modified file 'ChangeLog' --- ChangeLog 2010-02-14 17:36:26 +0000 +++ ChangeLog 2010-02-16 16:41:50 +0000 @@ -130,6 +130,11 @@ * util/grub-mkrawimage.c (generate_image): Add forgotten ALIGN_UP. +2010-02-16 Manoel Rebelo Abranches + + * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Add some + unimplemented keys. + 2010-02-10 Vladimir Serbinenko Pass SIMPLE framebuffer size in bytes and not 64K blocks. === modified file 'term/ieee1275/ofconsole.c' --- term/ieee1275/ofconsole.c 2010-02-14 13:52:10 +0000 +++ term/ieee1275/ofconsole.c 2010-02-16 19:15:34 +0000 @@ -202,9 +202,16 @@ grub_ieee1275_read (stdin_ihandle, &c, 1, &actual); - if (actual > 0 && c == '\e') + if (actual > 0) + switch(c) { grub_uint64_t start; + case 0x7f: + /* Backspace: Ctrl-h. */ + c=8; + break; + case '\e': + grub_ieee1275_read (stdin_ihandle, &c, 1, &actual); /* On 9600 we have to wait up to 12 milliseconds. */ @@ -247,7 +254,25 @@ /* Left: Ctrl-b. */ c = GRUB_TERM_LEFT; break; + case '3': + + grub_ieee1275_read (stdin_ihandle, &c, 1, &actual); + /* On 9600 we have to wait up to 12 milliseconds. */ + start = grub_get_time_ms (); + while (actual <= 0 && grub_get_time_ms () - start < 12) + grub_ieee1275_read (stdin_ihandle, &c, 1, &actual); + + if (actual <= 0) + return 0; + + /* Delete: Ctrl-d. */ + if (c == '~') + c = 4; + else + return 0; + break; } + break; } *key = c;