scroll

scrollbackbuffer program for st
git clone git://git.suckless.org/scroll
Log | Files | Refs | README

commit 47f9a83aaf2304291c6b7b8812747f482f609902
parent 200c1a92277ddc3daf0cde1f4957090f5887b423
Author: Jan Klemkow <j.klemkow@wemelug.de>
Date:   Mon, 20 Apr 2020 22:59:50 +0200

fix die() on too fast scroll input

Diffstat:
Mscroll.c | 11+++++------
1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/scroll.c b/scroll.c @@ -226,12 +226,11 @@ getcursorposition(int *x, int *y) if (write(STDOUT_FILENO, "\033[6n", 4) < 0) die("requesting cursor position"); - if ((n = read(STDIN_FILENO, input, sizeof(input)-1)) < 0) - die("reading cursor position"); - input[n] = '\0'; - - if (sscanf(input, "\033[%d;%dR", x, y) != 2) - die("parsing cursor position: %s", input); + do { + if ((n = read(STDIN_FILENO, input, sizeof(input)-1)) < 0) + die("reading cursor position"); + input[n] = '\0'; + } while (sscanf(input, "\033[%d;%dR", x, y) != 2); if (x <= 0 || y <= 0) die("invalid cursor position: x=%d y=%d", x, y);