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