From ee39d57e8c3c87ce268caad24b6390129c4e4242 Mon Sep 17 00:00:00 2001
From: Adam Rogoyski <rogoyski@cs.utexas.edu>
Date: Tue, 20 Jun 2000 00:00:53 +0000
Subject: [PATCH] - do_wrap() spaces between words fix.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@36 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 nano.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/nano.c b/nano.c
index 86a0c383..bee1bbca 100644
--- a/nano.c
+++ b/nano.c
@@ -703,18 +703,22 @@ assert (strlenpt(inptr->data) >= fill);
     else {
 
 	/* Case 2a: cursor before word at wrap point. */
-	if (current_x < current_word_start) {
-	    temp->data = nmalloc(strlen(&inptr->data[current_word_start]) + 1);
+        if (current_x < current_word_start) {
+            temp->data = nmalloc(strlen(&inptr->data[current_word_start]) + 1);
             strcpy(temp->data, &inptr->data[current_word_start]);
-
-	    /* Do this in either case, else words after current_x
-		get chopped... */
-	    i = current_word_start - 1;
-	    while (isspace(inptr->data[i])) {
-		i--;
-		assert (i >= 0);
-	    }
-
+        
+            if (!isspace(input_char)) {
+                i = current_word_start - 1;
+                while (isspace(inptr->data[i])) {  
+                    i--;
+                    assert (i >= 0);
+                }
+            }
+            else if (current_x <= last_word_end)  
+                i = last_word_end - 1;     
+            else
+                i = current_x - 1;
+                
             inptr->data = nrealloc(inptr->data, i + 2);
             inptr->data[i + 1] = 0;
         }
-- 
GitLab