patch 7.4.1015
Problem: The column is not restored properly when the matchparen plugin is
used in Insert mode and the cursor is after the end of the line.
Solution: Set the curswant flag. (Christian Brabandt). Also fix
highlighting the match of the character before the cursor.
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 2a5a16a..873302e 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Jul 19
+" Last Change: 2015 Dec 31
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -55,7 +55,7 @@
let before = 0
let text = getline(c_lnum)
- let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\)')
+ let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)')
if empty(matches)
let [c_before, c] = ['', '']
else
diff --git a/src/eval.c b/src/eval.c
index 8b972df..1abb620 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10183,6 +10183,7 @@
#ifdef FEAT_VIRTUALEDIT
long coladd = 0;
#endif
+ int set_curswant = TRUE;
rettv->vval.v_number = -1;
if (argvars[1].v_type == VAR_UNKNOWN)
@@ -10198,7 +10199,10 @@
coladd = pos.coladd;
#endif
if (curswant >= 0)
+ {
curwin->w_curswant = curswant - 1;
+ set_curswant = FALSE;
+ }
}
else
{
@@ -10231,7 +10235,7 @@
mb_adjust_cursor();
#endif
- curwin->w_set_curswant = TRUE;
+ curwin->w_set_curswant = set_curswant;
rettv->vval.v_number = 0;
}
@@ -17524,7 +17528,10 @@
{
curwin->w_cursor = pos;
if (curswant >= 0)
+ {
curwin->w_curswant = curswant - 1;
+ curwin->w_set_curswant = FALSE;
+ }
check_cursor();
rettv->vval.v_number = 0;
}
diff --git a/src/version.c b/src/version.c
index 699a7f6..1e9dabd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1015,
+/**/
1014,
/**/
1013,