commit 30591c5e01bca3a270e36f9f3e6d4864443c2e9c
parent 3f8e30efb17861ac2ef728dd3db3b083199d2f06
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Sat, 10 Dec 2016 21:18:10 +0100
tweaks: use a while loop when the end point is not known in advance
It is easier to see the order of steps and what the terminating
condition is.
Diffstat:
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/nano.c b/src/nano.c
@@ -1763,20 +1763,21 @@ int do_mouse(void)
#ifndef NANO_TINY
if (ISSET(SOFTWRAP)) {
size_t i = 0;
- for (openfile->current = openfile->edittop;
- openfile->current->next && i < mouse_y;
- openfile->current = openfile->current->next, i++) {
+
+ openfile->current = openfile->edittop;
+
+ while (openfile->current->next != NULL && i < mouse_y) {
openfile->current_y = i;
- i += strlenpt(openfile->current->data) / editwincols;
+ i += strlenpt(openfile->current->data) / editwincols + 1;
+ openfile->current = openfile->current->next;
}
if (i > mouse_y) {
openfile->current = openfile->current->prev;
openfile->current_x = actual_x(openfile->current->data,
mouse_x + (mouse_y - openfile->current_y) * editwincols);
- } else {
+ } else
openfile->current_x = actual_x(openfile->current->data, mouse_x);
- }
} else
#endif /* NANO_TINY */
{