[syslinux:master] rosh: fix displaying too many lines because a line is too long.

syslinux-bot for Gene Cumm gene.cumm at gmail.com
Fri Oct 8 13:57:14 PDT 2010


Commit-ID:  b9c4642f9e56e50600251081033bb7ce7044f611
Gitweb:     http://syslinux.zytor.com/commit/b9c4642f9e56e50600251081033bb7ce7044f611
Author:     Gene Cumm <gene.cumm at gmail.com>
AuthorDate: Thu, 1 Jul 2010 21:50:16 -0400
Committer:  Gene Cumm <gene.cumm at gmail.com>
CommitDate: Wed, 7 Jul 2010 09:58:32 -0400

rosh: fix displaying too many lines because a line is too long.



---
 com32/rosh/rosh.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/com32/rosh/rosh.c b/com32/rosh/rosh.c
index 4e97e0b..b35b894 100644
--- a/com32/rosh/rosh.c
+++ b/com32/rosh/rosh.c
@@ -38,7 +38,7 @@
 #define APP_NAME	"rosh"
 #define APP_AUTHOR	"Gene Cumm"
 #define APP_YEAR	"2010"
-#define APP_VER		"beta-b063"
+#define APP_VER		"beta-b064"
 
 void rosh_version(void)
 {
@@ -784,6 +784,7 @@ void rosh_more_buf(char *buf, int buflen, int rows, int cols)
     char scrbuf[ROSH_SBUF_SZ];
     int inc;
     int i, numln;		/* Index, Number of lines */
+    int elpl;		/* Extra lines per line read */
 
     (void)cols;
 
@@ -799,10 +800,15 @@ void rosh_more_buf(char *buf, int buflen, int rows, int cols)
 		bufeol = buf + buflen;
 		i = numln;
 	    } else {
-		i += ((bufeol2 - bufeol) / cols);
-		bufeol = bufeol2 + 1;
+		elpl = ((bufeol2 - bufeol - 1) / cols);
+		i += elpl;
+		ROSH_DEBUG2("  %d/%d  ", elpl, i+1);
+		/* If this will not push too much, use it */
+		if (i < numln)
+			bufeol = bufeol2 + 1;
 	    }
 	}
+	ROSH_DEBUG2("\n");
 	bufcnt = bufeol - bufp;
 	printf("--(%d/%d @%d)\n", bufcnt, buflen, bufpos);
 	memcpy(scrbuf, bufp, bufcnt);



More information about the Syslinux-commits mailing list