diff options
author | Michael Brown <mcb30@ipxe.org> | 2013-12-02 17:20:36 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2013-12-02 17:20:36 +0000 |
commit | 135bf35b1189a4402dcca13685331c3fb2d901f5 (patch) | |
tree | b95a0652759472957c53f61915062ef28424ee62 /src/core/ansiesc.c | |
parent | 1403bda951807b2412e0617377e8542ebb4a28fa (diff) | |
download | ipxe-135bf35b1189a4402dcca13685331c3fb2d901f5.tar.gz |
[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>
Diffstat (limited to 'src/core/ansiesc.c')
-rw-r--r-- | src/core/ansiesc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/ansiesc.c b/src/core/ansiesc.c index 68e7061b..ca9a73ce 100644 --- a/src/core/ansiesc.c +++ b/src/core/ansiesc.c @@ -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; |