diff options
author | Ulf Jordan <jordan@chalmers.se> | 2008-09-30 06:13:54 +0000 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2008-09-30 06:13:54 +0000 |
commit | 94c1bd8904ec23566d5a63ad396eb07424df97ee (patch) | |
tree | 69775605cfa7e4a4965e5db0147ff82532180c33 | |
parent | 45db366d5c8222148100713b165762aab61c478f (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.c | 2 | ||||
-rw-r--r-- | payloads/coreinfo/ramdump_module.c | 3 |
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++; |