[ipxe-devel] serial arrow keys broken

Michael Brown mcb30 at ipxe.org
Fri Apr 25 15:50:23 UTC 2014


On 23/04/14 02:11, Ben Hildred wrote:
>     Are you seeing the background colour being drawn character by
>     character on the VGA output (rather than changing colour as a single
>     block)?  If so then something very strange is happening, since that
>     code was removed in November.
>
> It may be happening  on serial but it definitely is happening on vga,
> including today's master without local patches. Note that this happens
> on the menu and config only, not on login.

OK, I understand what you are seeing now.

The "clear screen" code does use <ESC>[2J to clear the whole screen at 
once.  However, the menu code will then draw each line within the menu 
(including blank lines) by printing spaces.  (This is done to keep the 
code simple, since code size is an important consideration for iPXE.)

We could potentially optimise the drawing of blank lines by using 
<ESC>[2K to clear to the end of the line.  This would require some 
changes to menu_ui.c and settings_ui.c to use cursor movements and 
clrtoeol() rather than printing spaces, a .clrtoeol method in 
ansi_screen.c, and an implementation of <ESC>[2K in all ANSI-emulating 
consoles (e.g. the BIOS console and the EFI console).

Michael



More information about the ipxe-devel mailing list