diff options
author | Jakob Kaivo <jkk@ung.org> | 2020-07-15 12:07:59 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2020-07-15 12:07:59 -0400 |
commit | 707da08aacb29be4b1b7677768b0206301cf50a0 (patch) | |
tree | 8021fc8246b3f2ab7e8ad837045fe0af2855f521 | |
parent | 7ca612506a90802b7e1e9dd02cdabfef8cf0c74d (diff) |
implement g and G
-rw-r--r-- | more.c | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -1,6 +1,7 @@ #define _XOPEN_SOURCE 700 #include <ctype.h> #include <errno.h> +#include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -139,21 +140,20 @@ int more(const struct more_tty *mt, const char *file) scroll(mt, &mf, count, -mt->lines / 2); break; - case 'g': - //scroll_beginning(count); - break; - case 'G': - //scroll_end(count); - break; - - case 'r': - case CTRL_L: - refresh(mt, &mf); + if (count == 0) { + count = INT_MAX; + } + /* FALLTHRU */ + case 'g': + scroll(mt, &mf, count - mf.topline, 1); break; case 'R': // discard(); + /* FALLTHRU */ + case 'r': + case CTRL_L: refresh(mt, &mf); break; |