From: Gene Cumm Date: Fri, 2 Jul 2010 01:50:16 +0000 (-0400) Subject: rosh: fix displaying too many lines because a line is too long. X-Git-Tag: syslinux-4.04-pre1~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b9c4642f9e56e50600251081033bb7ce7044f611;p=profile%2Fivi%2Fsyslinux.git rosh: fix displaying too many lines because a line is too long. --- 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);