nano

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

commit 91073be49c5d23c7e54ba4e09098d5b56d7a22e3
parent d5f9be7dc8c10f276a5c1487e51e70f34c030f78
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Mon, 22 Jan 2018 11:33:19 +0100

wrapping: don't trim a blank character that the user just typed

Trimming trailing spaces is good, but we should not trim the space
(or tab or other blank) that the user just typed and that caused the
hard-wrapping to occur.

This fixes https://savannah.gnu.org/bugs/?52948.
Reported-by: Andreas Schamanek <schamane@fam.tuwien.ac.at>

Diffstat:
Msrc/text.c | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/text.c b/src/text.c @@ -1619,8 +1619,9 @@ bool do_wrap(filestruct *line) /* When requested, snip trailing blanks off the wrapped line. */ if (ISSET(TRIM_BLANKS)) { size_t cur_x = move_mbleft(line->data, wrap_loc); + size_t typed_x = move_mbleft(line->data, old_x); - while (is_blank_mbchar(line->data + cur_x)) { + while (is_blank_mbchar(line->data + cur_x) && cur_x != typed_x) { openfile->current_x = cur_x; do_delete(); cur_x = move_mbleft(line->data, cur_x);