diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-03-05 18:03:04 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-03-05 18:03:04 +0100 |
commit | f58a8475e17bd566760fc7e2a17d35ddf4edacf2 (patch) | |
tree | 67c22d82f4c544570688023e34f3e51f5d65e2c7 /src/misc1.c | |
parent | 2c7292dc5bbf155fe2192d417363b8c085759cad (diff) | |
download | vim-git-f58a8475e17bd566760fc7e2a17d35ddf4edacf2.tar.gz |
patch 8.0.0421: diff mode wrong when adding line at end of bufferv8.0.0421
Problem: Diff mode is displayed wrong when adding a line at the end of a
buffer.
Solution: Adjust marks in diff mode. (James McCoy, closes #1329)
Diffstat (limited to 'src/misc1.c')
-rw-r--r-- | src/misc1.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/misc1.c b/src/misc1.c index fbb1081a5..dce912c40 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -1427,8 +1427,12 @@ open_line( /* Postpone calling changed_lines(), because it would mess up folding * with markers. * Skip mark_adjust when adding a line after the last one, there can't - * be marks there. */ - if (curwin->w_cursor.lnum + 1 < curbuf->b_ml.ml_line_count) + * be marks there. But still needed in diff mode. */ + if (curwin->w_cursor.lnum + 1 < curbuf->b_ml.ml_line_count +#ifdef FEAT_DIFF + || curwin->w_p_diff +#endif + ) mark_adjust(curwin->w_cursor.lnum + 1, (linenr_T)MAXLNUM, 1L, 0L); did_append = TRUE; } @@ -2863,8 +2867,12 @@ appended_lines(linenr_T lnum, long count) appended_lines_mark(linenr_T lnum, long count) { /* Skip mark_adjust when adding a line after the last one, there can't - * be marks there. */ - if (lnum + count < curbuf->b_ml.ml_line_count) + * be marks there. But it's still needed in diff mode. */ + if (lnum + count < curbuf->b_ml.ml_line_count +#ifdef FEAT_DIFF + || curwin->w_p_diff +#endif + ) mark_adjust(lnum + 1, (linenr_T)MAXLNUM, count, 0L); changed_lines(lnum + 1, 0, lnum + 1, count); } |