From 04201d4f480affa7592273424e2988123b23ef01 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sun, 23 Aug 2020 22:59:04 -0400 Subject: [PATCH] EDIT: More corner case bug fix for cursor movement at EOL. --- apps/edit.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/edit.c b/apps/edit.c index 18b06d2..bca1944 100644 --- a/apps/edit.c +++ b/apps/edit.c @@ -1342,7 +1342,7 @@ void cursor_right(void) { goto done; } ++curscol; - if (gapend == BUFSZ - 1) + if ((gapend == BUFSZ - 1) && (get_gapbuf(gapend) != EOL)) goto done; if (curscol == rowlen[cursrow]) { if (cursrow == NROWS - 1) @@ -1418,6 +1418,10 @@ uint8_t cursor_down(void) { (rowlen[cursrow] != NCOLS)) return 1; // Last line + if (rowlen[cursrow] == 0) { + beep(); + return 1; + } for (i = 0; i < rowlen[cursrow] - curscol; ++i) { if (gapend < BUFSZ - 1) { set_gapbuf(gapbegin++, get_gapbuf(++gapend)); @@ -1433,7 +1437,7 @@ uint8_t cursor_down(void) { } ++cursrow; // Short line ... - if (rowlen[cursrow + 1] == 0) + if (rowlen[cursrow] == 0) curscol = 0; else if (curscol > rowlen[cursrow] - 1) curscol = rowlen[cursrow] - 1;