From: Adam Rogoyski Date: Tue, 13 Mar 2001 18:36:03 +0000 (+0000) Subject: Add auto indenting of wrapped lines which should be indented. Also fix X-Git-Tag: v1.0.0~16 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=1e9183fe31a68d867635398992479f5b482518b1;p=nano.git 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 --- 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);