From 16c037fdb0f450500b9d78ef074074d3ddbc1be5 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Wed, 24 Feb 2016 04:46:44 +0000 Subject: [PATCH] Tweak KILL_TRAILING_SPACES. Still deciding on name... git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5675 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 3 ++- src/text.c | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index eacfe3ca..0fea0a7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,7 +10,8 @@ 2016-02-22 Chris Allegretta * Add the ability to kill the trailing spaces when justifying text, by adding a new nanorc option 'kill_spaces_on_justify' -- we'll see - whether this warrants a command-line flag or not. + whether this warrants a command-line flag or not. Now with slightly + better logic for multi-spaced lines. 2016-02-22 Benno Schulenberg * src/nano.c (free_openfilestruct): Elide this function. diff --git a/src/text.c b/src/text.c index ac12f351..e419616a 100644 --- a/src/text.c +++ b/src/text.c @@ -2176,10 +2176,13 @@ void do_justify(bool full_justify) #endif /* Break the current line. */ - if (ISSET(KILL_TRAILING_SPACES)) - null_at(&openfile->current->data, break_pos - 1); - else - null_at(&openfile->current->data, break_pos); + if (ISSET(KILL_TRAILING_SPACES)) { + while (break_pos > 0 && + is_blank_mbchar(&openfile->current->data[break_pos-1])) { + break_pos--; + } + } + null_at(&openfile->current->data, break_pos); /* Go to the next line. */ par_len--;