]> git.wh0rd.org Git - nano.git/commitdiff
Add auto indenting of wrapped lines which should be indented. Also fix
authorAdam Rogoyski <rogoyski@cs.utexas.edu>
Tue, 13 Mar 2001 18:36:03 +0000 (18:36 +0000)
committerAdam Rogoyski <rogoyski@cs.utexas.edu>
Tue, 13 Mar 2001 18:36:03 +0000 (18:36 +0000)
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

diff --git a/nano.c b/nano.c
index 542006f19f75e03ef17351d82f8518e9ca89c9c0..e4bdfc144302e636a86cdd4d111652d44c83e02b 100644 (file)
--- 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);