summaryrefslogtreecommitdiffstats
path: root/mbbsd/edit.c
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd/edit.c')
-rw-r--r--mbbsd/edit.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/mbbsd/edit.c b/mbbsd/edit.c
index db6ef395..f827bfdb 100644
--- a/mbbsd/edit.c
+++ b/mbbsd/edit.c
@@ -723,10 +723,9 @@ split(textline_t * line, int pos)
strcat(p->data + spcs, ptr);
ptr[0] = '\0';
- insert_line(line, p);
- line = adjustline(line, line->len);
if (line == curr_buf->currline && pos <= curr_buf->currpnt) {
- // XXX never reached !? since line is a new allocated memory
+ line = adjustline(line, line->len);
+ insert_line(line, p);
curr_buf->currline = p;
if (pos == curr_buf->currpnt)
curr_buf->currpnt = spcs;
@@ -734,6 +733,9 @@ split(textline_t * line, int pos)
curr_buf->currpnt -= pos;
curr_buf->curr_window_line++;
curr_buf->currln++;
+ } else {
+ p = adjustline(p, p->len);
+ insert_line(line, p);
}
curr_buf->redraw_everything = YEA;
}
@@ -859,7 +861,10 @@ undelete_line(void)
curr_buf->indent_mode = tmp.indent_mode;
curr_buf->curr_window_line = tmp.curr_window_line;
+ assert(curr_buf->currline->prev);
+ curr_buf->currline = adjustline(curr_buf->currline, curr_buf->currline->len);
curr_buf->currline = curr_buf->currline->prev;
+ curr_buf->currline = adjustline(curr_buf->currline, WRAPMARGIN);
if (curr_buf->currline->prev == NULL) {
curr_buf->top_of_win = curr_buf->currline;