swap x and y to more logical - scroll - scrollbackbuffer program for st | |
git clone git://git.suckless.org/scroll | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 8fa398224de3b1ba6b87968ae428a48fbb25a24c | |
parent fdb54c317eb9215cbfe063c7086a9cefba334f25 | |
Author: Jan Klemkow <[email protected]> | |
Date: Fri, 24 Apr 2020 00:08:53 +0200 | |
swap x and y to more logical | |
Diffstat: | |
M scroll.c | 16 ++++++++-------- | |
1 file changed, 8 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/scroll.c b/scroll.c | |
@@ -230,7 +230,7 @@ getcursorposition(int *x, int *y) | |
if ((n = read(STDIN_FILENO, input, sizeof(input)-1)) == -1) | |
die("reading cursor position"); | |
input[n] = '\0'; | |
- } while (sscanf(input, "\033[%d;%dR", x, y) != 2); | |
+ } while (sscanf(input, "\033[%d;%dR", y, x) != 2); | |
if (*x <= 0 || *y <= 0) | |
die("invalid cursor position: x=%d y=%d", *x, *y); | |
@@ -258,7 +258,7 @@ redraw() | |
/* wind back bottom pointer by shown history */ | |
for (; bottom != NULL && TAILQ_NEXT(bottom, entries) != NULL && | |
- rows < x - 2; rows++) | |
+ rows < y - 2; rows++) | |
bottom = TAILQ_NEXT(bottom, entries); | |
if (rows == 0) | |
@@ -299,10 +299,10 @@ scrollup(int n) | |
/* wind back scrollend pointer by one page plus n */ | |
for (; TAILQ_NEXT(scrollend, entries) != NULL && | |
- rows < x + n; rows++) | |
+ rows < y + n; rows++) | |
scrollend = TAILQ_NEXT(scrollend, entries); | |
- rows -= x; | |
+ rows -= y; | |
if (rows <= 0) | |
return; | |
@@ -319,19 +319,19 @@ 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 (y + 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 (y + n >= ws.ws_row) | |
bottom = TAILQ_NEXT(bottom, entries); | |
write(STDOUT_FILENO, scrollend->buf, scrollend->size); | |
} | |
/* move cursor from line n to the old bottom position */ | |
- if (x + n < ws.ws_row) { | |
- dprintf(STDOUT_FILENO, "\033[%d;%dH", x + n, y); | |
+ if (y + n < ws.ws_row) { | |
+ dprintf(STDOUT_FILENO, "\033[%d;%dH", y + n, y); | |
write(STDOUT_FILENO, "\033[?25h", 6); /* show cursor */ | |
} else | |
dprintf(STDOUT_FILENO, "\033[%d;0H", ws.ws_row); |