diff options
author | Michael Brown | 2014-03-13 15:20:10 +0100 |
---|---|---|
committer | Michael Brown | 2014-03-13 15:21:59 +0100 |
commit | a17ee3610da87dece79292fa09266b43066ea6f3 (patch) | |
tree | fea59e88dde22c77d15999d32b7138a6fa7070e9 | |
parent | [efi] Connect driver to devices as part of installation (diff) | |
download | ipxe-a17ee3610da87dece79292fa09266b43066ea6f3.tar.gz ipxe-a17ee3610da87dece79292fa09266b43066ea6f3.tar.xz ipxe-a17ee3610da87dece79292fa09266b43066ea6f3.zip |
[console] Fix display of characters with top bit set
Inhibit implicit sign-padding of characters with the top bit set
(e.g. accented characters), which confuses the mucurses library by
colliding with the bits used to store character attributes and
colours.
Reported-by: Marc Delisle <Marc.Delisle@cegepsherbrooke.qc.ca>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/core/vsprintf.c | 2 | ||||
-rw-r--r-- | src/hci/mucurses/mucurses.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/core/vsprintf.c b/src/core/vsprintf.c index 5cc72310..54811b11 100644 --- a/src/core/vsprintf.c +++ b/src/core/vsprintf.c @@ -167,7 +167,7 @@ static char * format_decimal ( char *end, signed long num, int width, * Call's the printf_context::handler() method and increments * printf_context::len. */ -static inline void cputchar ( struct printf_context *ctx, unsigned int c ) { +static inline void cputchar ( struct printf_context *ctx, unsigned char c ) { ctx->handler ( ctx, c ); ++ctx->len; } diff --git a/src/hci/mucurses/mucurses.c b/src/hci/mucurses/mucurses.c index c368b763..b67445ba 100644 --- a/src/hci/mucurses/mucurses.c +++ b/src/hci/mucurses/mucurses.c @@ -75,7 +75,7 @@ void _wputch ( WINDOW *win, chtype ch, int wrap ) { * @v wrap wrap "switch" */ void _wputc ( WINDOW *win, char c, int wrap ) { - _wputch ( win, ( c | win->attrs ), wrap ); + _wputch ( win, ( ( ( unsigned char ) c ) | win->attrs ), wrap ); } /** |