ppcrcd/trunk/yaboot/yaboot.c

sparky cvs at pld-linux.org
Sat Mar 25 22:25:52 CET 2006


Author: sparky
Date: Sat Mar 25 22:25:47 2006
New Revision: 7318

Modified:
   ppcrcd/trunk/yaboot/yaboot.c
Log:
- cleaned test paging code


Modified: ppcrcd/trunk/yaboot/yaboot.c
==============================================================================
--- ppcrcd/trunk/yaboot/yaboot.c	(original)
+++ ppcrcd/trunk/yaboot/yaboot.c	Sat Mar 25 22:25:47 2006
@@ -323,6 +323,7 @@
 
 	if ( paging ) {
 		char *nlp;
+		int c;
 		int len = 0;
 		int new_lines;
 
@@ -332,21 +333,30 @@
 			while (--new_lines > 0) {
 				nlp = strchr((nlp+1), '\n');
 				if ( nlp == NULL ) { /* less than 20 lines */
-					prom_printf("\r		\r%s", msg);
-					goto done;
+					if ( msg[1999] == '\0' ) {
+						/* end of file */
+						prom_printf("\r                   \r%s", msg);
+						goto done;
+					}
+					nlp = strrchr(msg, '\n');
 				}
 			}
 			*++nlp = '\0';
-
-			prom_printf("\r		\r%s[Press a key]", msg);
 			len += nlp - msg;
 
+			prom_printf("\r                   \r%s[Press a key, or Q]", msg);
+
 			memset(msg, 0, 2001);
 			file.fs->seek(&file, len);
 			file.fs->read(&file, 2000, msg);
+			msg[2000] = '\0';
 
 			/* wait until key */
-			while ( prom_nbgetchar() == -1 );
+			while ( (c = prom_nbgetchar()) == -1 );
+			if ( c == 'q' || c == 'Q' ) {
+				prom_printf("\r                   \r");
+				goto done;
+			}
 		}
 	} else
 		prom_printf("%s", msg);


More information about the pld-cvs-commit mailing list