[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