commit 1e9183fe31a68d867635398992479f5b482518b1
parent 46055b2543dd0a2609492ee055b44b6381654b72
Author: Adam Rogoyski <rogoyski@cs.utexas.edu>
Date: Tue, 13 Mar 2001 18:36:03 +0000
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
Diffstat:
M | nano.c | | | 23 | ++++++++++++++++++++++- |
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git 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);