nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

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:
Msrc/nano.c | 13+++++++------
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 */ {