summaryrefslogtreecommitdiffstats
path: root/mbbsd/edit.c
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-10 15:51:37 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-10 15:51:37 +0800
commitedb1ab8186f0fdf6cb783186468edf39775ae1bc (patch)
tree2f5f8aed3f903ae8245b0bd6be7c74bcdce56753 /mbbsd/edit.c
parent2ada0f2d94034a9716f0061ba7760e82f90f268b (diff)
downloadpttbbs-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/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;