commit 0922415ff15a4084bc752a606b12aeb23e8afd2d
Author: Raniconduh <clagv.randomgames@gmail.com>
Date: Wed Jun 23 21:46:08 2021 +0000
diff --git a/scroll.c b/scroll.c
index 9d30d27..4f1b8b2 100644
--- a/scroll.c
+++ b/scroll.c
@@ -10812 +10826 @@ int main ( int argc, char ** argv ) {
listitems(); // preliminary list to save on disk io
// driver loop -- ig bools are defined in nh
+
+ size_t firstf = 0;
+ size_t lastf = (size_t)(LINES - 6) < dirCount ? (size_t)(LINES - 6) : dirCount;
+
while (true) {
erase();
+ // scroll the output up
+ if (cursor + 1 >= lastf && lastf < dirCount) {
+ lastf++;
+ firstf++;
+ // scroll the output down
+ } else if (cursor - 1 <= firstf && firstf > 0) {
+ lastf--;
+ firstf--;
+ }
+
printw("\n%s\n\n", cwd); // print path at top
- for (size_t i = 0; i < dirCount; i++) {
+ for (size_t i = firstf; i < lastf; i++) {
if (cursor == i)
print_file(dirContents[i], true);
else
@@ -12617 +14021 @@ int main ( int argc, char ** argv ) {
char c = getch();
if (c == 'q') goto done; // 'q' command for quit
- if (c == 'j') cursor += 1 ? cursor < dirCount - 1 : 0; // down key
- else if (c == 'k') cursor -= 1 ? cursor > 0 : 0; // up key
+ if (c == 'j') cursor < dirCount - 1 ? cursor += 1 : 0; // down key
+ else if (c == 'k') cursor > 0 ? cursor -= 1 : 0; // up key
else if (c == 'h') {
cdback();
listitems();
cursor = 0;
+ firstf = 0;
+ lastf = (size_t)(LINES - 6) < dirCount ? (size_t)(LINES - 6) : dirCount;
}
else if (c == 'l') {
enter(dirContents[cursor]);
listitems();
cursor = 0;
+ firstf = 0;
+ lastf = (size_t)(LINES - 6) < dirCount ? (size_t)(LINES - 6) : dirCount;
}
refresh();