From 6a0ae5aaa219654ed0003fcede8a29d398bf0581 Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Mon, 22 Feb 2016 15:10:32 +0000
Subject: [PATCH] 2016-02-22  Chris Allegretta <chrisa@asty.org>         * Add
 ability to kill the trailing spaces when justifying         code.  New nanorc
 option kill_spaces_on_wrap, we'll see         whether this warrants a command
 line flahg or not.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5664 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog    | 5 +++++
 src/nano.h   | 3 ++-
 src/rcfile.c | 1 +
 src/text.c   | 7 +++++--
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cf0ff8b9..8d674cdc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-22  Chris Allegretta <chrisa@asty.org>
+	* Add ability to kill the trailing spaces when justifying
+	code.  New nanorc option kill_spaces_on_wrap, we'll see
+	whether this warrants a command line flahg or not.
+
 2016-02-22  Benno Schulenberg  <bensberg@justemail.net>
 	* src/nano.c (free_openfilestruct): Elide this function.
 	* scr/global.c (thanks_for_all_the_fish, free_list_item): Condense.
diff --git a/src/nano.h b/src/nano.h
index 28f1b85b..987ebd2f 100644
--- a/src/nano.h
+++ b/src/nano.h
@@ -517,7 +517,8 @@ enum
     POS_HISTORY,
     LOCKING,
     NOREAD_MODE,
-    MAKE_IT_UNIX
+    MAKE_IT_UNIX,
+    KILL_TRAILING_SPACES
 };
 
 /* Flags for the menus in which a given function should be present. */
diff --git a/src/rcfile.c b/src/rcfile.c
index 785cd901..6b20b9bc 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -90,6 +90,7 @@ static const rcoption rcopts[] = {
     {"backwards", BACKWARDS_SEARCH},
     {"casesensitive", CASE_SENSITIVE},
     {"cut", CUT_TO_END},
+    {"kill_spaces_on_wrap", KILL_TRAILING_SPACES},
     {"locking", LOCKING},
     {"matchbrackets", 0},
     {"noconvert", NO_CONVERT},
diff --git a/src/text.c b/src/text.c
index 996479b8..f16996d6 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1277,7 +1277,7 @@ bool do_wrap(filestruct *line)
 
 	/* If after_break doesn't end in a blank, make sure it ends in a
 	 * space. */
-	if (!is_blank_mbchar(end)) {
+	if (!is_blank_mbchar(end) && !ISSET(KILL_TRAILING_SPACES)) {
 #ifndef NANO_TINY
 	    add_undo(ADD);
 #endif
@@ -2174,7 +2174,10 @@ void do_justify(bool full_justify)
 #endif
 
 	    /* Break the current line. */
-	    null_at(&openfile->current->data, break_pos);
+            if (ISSET(KILL_TRAILING_SPACES))
+		null_at(&openfile->current->data, break_pos - 1);
+	    else
+		null_at(&openfile->current->data, break_pos);
 
 	    /* Go to the next line. */
 	    par_len--;
-- 
2.39.5