From a17ee3610da87dece79292fa09266b43066ea6f3 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 13 Mar 2014 14:20:10 +0000 Subject: [PATCH] [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 Signed-off-by: Michael Brown --- src/core/vsprintf.c | 2 +- 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 ); } /**