Introduction
Introduction Statistics Contact Development Disclaimer Help
Cleanup - scroll - scrollbackbuffer program for st
git clone git://git.suckless.org/scroll
Log
Files
Refs
README
LICENSE
---
commit ef64e7624c591d601da56c52948be37b1f54f18c
parent 6612bc96e47e1db1199a4d1b657dd10eb4cd438e
Author: Jochen Sprickerhof <[email protected]>
Date: Mon, 20 Apr 2020 23:22:27 +0200
Cleanup
Diffstat:
M scroll.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/scroll.c b/scroll.c
@@ -291,19 +291,22 @@ scrollup(int n)
int rows = 2, x, y;
struct line *scrollend = bottom;
+ if (bottom == NULL)
+ return;
+
getcursorposition(&x, &y);
if (n < 0) /* scroll by fraction of ws.ws_row, but at least one line */
n = ws.ws_row > (-n) ? ws.ws_row / (-n) : 1;
/* wind back scrollend pointer by one page plus n */
- for (; scrollend != NULL && TAILQ_NEXT(scrollend, entries) != NULL &&
+ for (; TAILQ_NEXT(scrollend, entries) != NULL &&
rows < x + n; rows++)
scrollend = TAILQ_NEXT(scrollend, entries);
rows -= x;
- if (scrollend == NULL || rows <= 0)
+ if (rows <= 0)
return;
/* move the text in terminal rows lines down */
@@ -318,13 +321,13 @@ scrollup(int n)
write(STDOUT_FILENO, scrollend->buf + 1, scrollend->size - 1);
else
write(STDOUT_FILENO, scrollend->buf, scrollend->size);
- if ( x + n >= ws.ws_row)
+ if (x + n >= ws.ws_row)
bottom = TAILQ_NEXT(bottom, entries);
/* print rows lines and move bottom forward to the new screen bottom */
for (; rows > 1; rows--) {
scrollend = TAILQ_PREV(scrollend, tailhead, entries);
- if ( x + n >= ws.ws_row)
+ if (x + n >= ws.ws_row)
bottom = TAILQ_NEXT(bottom, entries);
write(STDOUT_FILENO, scrollend->buf, scrollend->size);
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.