[coreboot] r3621 - trunk/payloads/coreinfo

svn at coreboot.org svn at coreboot.org
Tue Sep 30 08:13:54 CEST 2008


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 at chalmers.se>
Acked-by: Peter Stuge <peter at 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++;





More information about the coreboot mailing list