diff src/eval.c @ 7422:35af1e06696b v7.4.1015

commit https://github.com/vim/vim/commit/c21d67e33c1b42a492e04788cbb14a23a6724e39 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 31 22:27:55 2015 +0100 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.
author Christian Brabandt <cb@256bit.org>
date Thu, 31 Dec 2015 22:30:05 +0100
parents 1886f2863437
children ad432f8f68fb
line wrap: on
line diff
--- 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;
 		}