From: Bram Moolenaar Date: Thu, 31 Dec 2015 21:27:55 +0000 (+0100) Subject: patch 7.4.1015 X-Git-Tag: v7.4.1015 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c21d67e33c1b42a492e04788cbb14a23a6724e39;p=vim 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 2a5a16a57..873302efe 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -1,6 +1,6 @@ " Vim plugin for showing matching parens " Maintainer: Bram Moolenaar -" 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 8b972dfe7..1abb62059 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 699a7f6cb..1e9dabd6b 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1015, /**/ 1014, /**/