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>
master
Benno Schulenberg 2018-01-22 11:33:19 +01:00
parent d5f9be7dc8
commit 91073be49c
1 changed files with 2 additions and 1 deletions

View File

@ -1619,8 +1619,9 @@ bool do_wrap(filestruct *line)
/* When requested, snip trailing blanks off the wrapped line. */ /* When requested, snip trailing blanks off the wrapped line. */
if (ISSET(TRIM_BLANKS)) { if (ISSET(TRIM_BLANKS)) {
size_t cur_x = move_mbleft(line->data, wrap_loc); 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; openfile->current_x = cur_x;
do_delete(); do_delete();
cur_x = move_mbleft(line->data, cur_x); cur_x = move_mbleft(line->data, cur_x);