Author: stuge Date: 2008-09-30 08:13:54 +0200 (Tue, 30 Sep 2008) New Revision: 3621
Modified: trunk/payloads/coreinfo/bootlog_module.c trunk/payloads/coreinfo/ramdump_module.c Log: Do not try to display non-printable characters on the bootlog and ramdump screens. This fixes unaligned display on serial console.
The current isprint() implementation assumes a C locale, so also characters with the eigth bit set are supressed (they produced inconsistant results on VGA and serial anyway).
Signed-off-by: Ulf Jordan jordan@chalmers.se Acked-by: Peter Stuge peter@stuge.se
Modified: trunk/payloads/coreinfo/bootlog_module.c =================================================================== --- trunk/payloads/coreinfo/bootlog_module.c 2008-09-30 04:52:29 UTC (rev 3620) +++ trunk/payloads/coreinfo/bootlog_module.c 2008-09-30 06:13:54 UTC (rev 3621) @@ -63,7 +63,7 @@
/* FIXME: Handle lines longer than 80 characters. */ while (y <= 18) { - mvwaddnstr(win, y + 2, x, tmp, 1); + mvwaddch(win, y + 2, x, isprint(*tmp) ? *tmp : ' '); x++; tmp++; if (*tmp == '\n') {
Modified: trunk/payloads/coreinfo/ramdump_module.c =================================================================== --- trunk/payloads/coreinfo/ramdump_module.c 2008-09-30 04:52:29 UTC (rev 3620) +++ trunk/payloads/coreinfo/ramdump_module.c 2008-09-30 06:13:54 UTC (rev 3621) @@ -44,7 +44,8 @@ mvwaddch(win, row + y, col + 76, '|'); } mvwprintw(win, row + y, col + x + 9, "%02x", ptr[i - 1]); - mvwprintw(win, row + y, 62 + count++, "%c", ptr[i - 1]); + mvwprintw(win, row + y, 62 + count++, "%c", + isprint(ptr[i - 1]) ? ptr[i - 1] : ' '); x += 3; if (x == 24) /* One more space after column/byte 8. */ x++;