summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2014-03-13 15:20:10 +0100
committerMichael Brown2014-03-13 15:21:59 +0100
commita17ee3610da87dece79292fa09266b43066ea6f3 (patch)
treefea59e88dde22c77d15999d32b7138a6fa7070e9
parent[efi] Connect driver to devices as part of installation (diff)
downloadipxe-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.c2
-rw-r--r--src/hci/mucurses/mucurses.c2
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 );
}
/**