[console] Allow '?' as an intermediate byte in ANSI escape sequences

The ANSI escape sequences to show and hide the cursor take the form
"<ESC>[?25h" and "<ESC>[?25l" respectively.  iPXE currently treats the
'?' character as the final byte.  Fix by explicitly treating '?' as an
intermediate byte.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2013-12-02 17:20:36 +00:00
parent 1403bda951
commit 135bf35b11
2 changed files with 8 additions and 1 deletions

View File

@@ -99,7 +99,8 @@ int ansiesc_process ( struct ansiesc_context *ctx, int c ) {
DBG ( "Too many parameters in ANSI escape "
"sequence\n" );
}
} else if ( ( c >= 0x20 ) && ( c <= 0x2f ) ) {
} else if ( ( ( c >= 0x20 ) && ( c <= 0x2f ) ) ||
( c == '?' ) ) {
/* Intermediate Byte */
ctx->function <<= 8;
ctx->function |= c;