+2015-11-11 Benno Schulenberg <bensberg@justemail.net>
+ * src/text.c (do_redo, update_undo): Redo an Enter from the stored
+ undo data, instead of running do_enter() again, because the latter
+ will behave differently depending on the setting of autoindent.
+ This addresses Debian bug #793053 reported by Clancy.
+
2015-11-10 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Skip a zero-length match only when there
/is/ a match. Found with valgrind. This fixes Savannah bug #41908.
break;
case ENTER:
redidmsg = _("line break");
- goto_line_posx(u->lineno, u->begin);
- do_enter(TRUE);
+ filestruct *shoveline = make_new_node(f);
+ shoveline->data = mallocstrcpy(NULL, u->strdata);
+ data = mallocstrncpy(NULL, f->data, u->begin + 1);
+ data[u->begin] = '\0';
+ free(f->data);
+ f->data = data;
+ splice_node(f, shoveline, f->next);
+ if (f == openfile->filebot)
+ openfile->filebot = shoveline;
+ renumber(shoveline);
+ goto_line_posx(u->lineno + 1, u->mark_begin_x);
break;
#ifndef DISABLE_WRAPPING
case SPLIT_BEGIN:
u->mark_begin_lineno = openfile->current->lineno;
break;
case ENTER:
+ u->strdata = mallocstrcpy(NULL, fs->current->data);
u->mark_begin_x = fs->current_x;
break;
#ifndef DISABLE_WRAPPING