From 1e9183fe31a68d867635398992479f5b482518b1 Mon Sep 17 00:00:00 2001
From: Adam Rogoyski <rogoyski@cs.utexas.edu>
Date: Tue, 13 Mar 2001 18:36:03 +0000
Subject: [PATCH]    Add auto indenting of wrapped lines which should be
 indented.  Also fix total file size (totsize) when auto indenting.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@557 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 nano.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/nano.c b/nano.c
index 542006f1..e4bdfc14 100644
--- a/nano.c
+++ b/nano.c
@@ -586,6 +586,7 @@ int do_enter(filestruct * inptr)
 		extra++;
 		spc++;
 		current_x++;
+		totsize++;
 	    }
 	    new->data = nmalloc(strlen(tmp) + extra + 1);
 	    strncpy(new->data, current->data, extra);
@@ -911,6 +912,7 @@ void do_wrap(filestruct * inptr, char input_char)
     }
     /* Else we start a new line. */
     else {
+
 	temp->prev = inptr;
 	temp->next = inptr->next;
 
@@ -922,6 +924,25 @@ void do_wrap(filestruct * inptr, char input_char)
 	    filebot = temp;
 
 	SET(SAMELINEWRAP);
+
+	if (ISSET(AUTOINDENT)) {
+	    char *spc = inptr->data;
+	    char *t = NULL;
+	    int extra = 0;
+	    if (spc) {
+	        while ((*spc == ' ') || (*spc == '\t')) {
+		    extra++;
+		    spc++;
+		    right++;
+		    totsize++;
+		}
+		t = nmalloc(strlen(temp->data) + extra + 1);
+		strncpy(t, inptr->data, extra);
+		strcpy(t + extra, temp->data);
+		free(temp->data);
+		temp->data = t;
+	    }
+	}
     }
 
 
@@ -929,7 +950,7 @@ void do_wrap(filestruct * inptr, char input_char)
     /* Everything about it makes me want this line here but it causes
      * totsize to be high by one for some reason.  Sigh. (Rob) */
     /* totsize++; */
-
+	
     renumber(inptr);
     edit_update(edittop, TOP);
 
-- 
GitLab