summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2015-12-31 22:27:55 +0100
committerBram Moolenaar <Bram@vim.org>2015-12-31 22:27:55 +0100
commitc21d67e33c1b42a492e04788cbb14a23a6724e39 (patch)
tree2e6d28f98e82d2217f4a7582d9856b9285b2c0ef
parent06b0734d9cd2f39d4c12c7fd89a100eadbe5be78 (diff)
patch 7.4.1015v7.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.
-rw-r--r--runtime/plugin/matchparen.vim4
-rw-r--r--src/eval.c9
-rw-r--r--src/version.c2
3 files changed, 12 insertions, 3 deletions
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 2a5a16a57e..873302efee 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 @@ function! s:Highlight_Matching_Pair()
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 8b972dfe78..1abb62059c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10183,6 +10183,7 @@ f_cursor(argvars, rettv)
#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 @@ f_cursor(argvars, rettv)
coladd = pos.coladd;
#endif
if (curswant >= 0)
+ {
curwin->w_curswant = curswant - 1;
+ set_curswant = FALSE;
+ }
}
else
{
@@ -10231,7 +10235,7 @@ f_cursor(argvars, rettv)
mb_adjust_cursor();
#endif
- curwin->w_set_curswant = TRUE;
+ curwin->w_set_curswant = set_curswant;
rettv->vval.v_number = 0;
}
@@ -17524,7 +17528,10 @@ f_setpos(argvars, rettv)
{
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 699a7f6cb3..1e9dabd6b3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1015,
+/**/
1014,
/**/
1013,