[libpayload] Work around sign-extending issue
[coreboot.git] / payloads / libpayload / curses / tinycurses.c
index 776ff1604285dd2a4757b52258a2eefb2304804a..5e707c47db893a7385f01066278e5c69d1c59ad4 100644 (file)
@@ -580,7 +580,13 @@ int wnoutrefresh(WINDOW *win)
                                        c |= tmp << 12;
                                }
 
-                               c |= win->_line[y].text[x].chars[0];
+                               /*
+                                * FIXME: Somewhere along the line, the
+                                * character value is getting sign-extented.
+                                * For now grab just the 8 bit character,
+                                * but this will break wide characters!
+                                */
+                               c |= (chtype) (win->_line[y].text[x].chars[0] & 0xff);
                                vga_putc(y, x, c);
                        }
                }