diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-30 17:01:35 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-30 17:01:35 +0200 |
commit | d41babef89a50cdf165f15bc1834c0a4e89ffff8 (patch) | |
tree | fe92798ce61d0cda8fa746fc9baacc9dc1663266 /src/misc2.c | |
parent | 4ad3b2b588f0f591dcc53096c46ec1b5e80af49f (diff) | |
download | vim-d41babef89a50cdf165f15bc1834c0a4e89ffff8.zip |
patch 8.0.1019: pasting in virtual edit happens in the wrong place
Problem: Pasting in virtual edit happens in the wrong place.
Solution: Do not adjust coladd when after the end of the line (closes #2015)
Diffstat (limited to 'src/misc2.c')
-rw-r--r-- | src/misc2.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/misc2.c b/src/misc2.c index d431a9428..9e47b24b4 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -607,11 +607,14 @@ check_cursor_col_win(win_T *win) if (oldcoladd > win->w_cursor.col) { win->w_cursor.coladd = oldcoladd - win->w_cursor.col; - if (win->w_cursor.col < len && win->w_cursor.coladd > 0) + + /* Make sure that coladd is not more than the char width. + * Not for the last character, coladd is then used when the cursor + * is actually after the last character. */ + if (win->w_cursor.col + 1 < len && win->w_cursor.coladd > 0) { int cs, ce; - /* check that coladd is not more than the char width */ getvcol(win, &win->w_cursor, &cs, NULL, &ce); if (win->w_cursor.coladd > ce - cs) win->w_cursor.coladd = ce - cs; |