Forráskód Böngészése

Actually jump down on new input

Jochen Sprickerhof 5 éve
szülő
commit
3a664c24cc
1 módosított fájl, 13 hozzáadás és 2 törlés
  1. 13 2
      scroll.c

+ 13 - 2
scroll.c

@@ -296,6 +296,18 @@ scrolldown(char *buf, size_t size)
 	}
 }
 
+void
+jumpdown(char *buf, size_t size)
+{
+	int rows = ws.ws_row;
+
+	bottom = TAILQ_FIRST(&head);
+	for (; TAILQ_NEXT(bottom, entries) != NULL && rows > 0; rows--)
+		bottom = TAILQ_NEXT(bottom, entries);
+
+	scrolldown(buf, size);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -375,8 +387,7 @@ main(int argc, char *argv[])
 			else if (write(mfd, &c, 1) == -1)
 				die("write:");
 			else if (bottom != TAILQ_FIRST(&head)) {
-				bottom = TAILQ_FIRST(&head);
-				scrolldown(buf, pos);
+				jumpdown(buf, pos);
 			}
 		}
 		if (pfd[1].revents & POLLIN) {