Commit 244a503d authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

moving: the current chunk cannot be beyond the last chunk of a line

When determining the leftedge of the current chunk, it is not simply
the leftedge that corresponds to the placewewant, but the leftedge that
corresponds to the minimum of the placewewant and the full line span.

This fixes https://savannah.gnu.org/bugs/?50653.
No related merge requests found
Showing with 12 additions and 2 deletions
+12 -2
......@@ -463,7 +463,12 @@ void do_up(bool scroll_only)
#ifndef NANO_TINY
if (ISSET(SOFTWRAP)) {
leftedge = (openfile->placewewant / editwincols) * editwincols;
size_t realspan = strlenpt(openfile->current->data);
if (openfile->placewewant < realspan)
realspan = openfile->placewewant;
leftedge = (realspan / editwincols) * editwincols;
target_column = openfile->placewewant % editwincols;
}
#endif
......@@ -514,7 +519,12 @@ void do_down(bool scroll_only)
#ifndef NANO_TINY
if (ISSET(SOFTWRAP)) {
leftedge = (openfile->placewewant / editwincols) * editwincols;
size_t realspan = strlenpt(openfile->current->data);
if (openfile->placewewant < realspan)
realspan = openfile->placewewant;
leftedge = (realspan / editwincols) * editwincols;
target_column = openfile->placewewant % editwincols;
}
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment