summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Jordan <jordan@chalmers.se>2008-09-30 06:13:54 +0000
committerPeter Stuge <peter@stuge.se>2008-09-30 06:13:54 +0000
commit94c1bd8904ec23566d5a63ad396eb07424df97ee (patch)
tree69775605cfa7e4a4965e5db0147ff82532180c33
parent45db366d5c8222148100713b165762aab61c478f (diff)
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> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3621 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--payloads/coreinfo/bootlog_module.c2
-rw-r--r--payloads/coreinfo/ramdump_module.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/payloads/coreinfo/bootlog_module.c b/payloads/coreinfo/bootlog_module.c
index 74424e2df6..1dc7bbec70 100644
--- a/payloads/coreinfo/bootlog_module.c
+++ b/payloads/coreinfo/bootlog_module.c
@@ -63,7 +63,7 @@ static int bootlog_module_redraw(WINDOW *win)
/* 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') {
diff --git a/payloads/coreinfo/ramdump_module.c b/payloads/coreinfo/ramdump_module.c
index 019b3d9deb..04a9f0955d 100644
--- a/payloads/coreinfo/ramdump_module.c
+++ b/payloads/coreinfo/ramdump_module.c
@@ -44,7 +44,8 @@ static void dump_ram(WINDOW *win, uint32_t addr, int row, int col)
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++;