diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-02-10 15:51:37 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-02-10 15:51:37 +0800 |
commit | edb1ab8186f0fdf6cb783186468edf39775ae1bc (patch) | |
tree | 2f5f8aed3f903ae8245b0bd6be7c74bcdce56753 /mbbsd | |
parent | 2ada0f2d94034a9716f0061ba7760e82f90f268b (diff) | |
download | pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar.gz pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar.bz2 pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar.lz pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar.xz pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.tar.zst pttbbs-edb1ab8186f0fdf6cb783186468edf39775ae1bc.zip |
bug fix: correctly adjustline() on current line with big buffer
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2489 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/edit.c | 11 |
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; |