changeset 31845:2ce8e7c4acf4 v9.0.1255

patch 9.0.1255: changing 'virtualedit' does not have immediate effect Commit: https://github.com/vim/vim/commit/8fe5b9c8c1223861cec0484ccc031858ae08d107 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 28 16:37:37 2023 +0000 patch 9.0.1255: changing 'virtualedit' does not have immediate effect Problem: Changing 'virtualedit' does not have immediate effect. Solution: Correct how is checked for a changed value. (closes https://github.com/vim/vim/issues/11878)
author Bram Moolenaar <Bram@vim.org>
date Sat, 28 Jan 2023 17:45:03 +0100
parents c049b6f34639
children d16405cfcc8b
files src/optionstr.c src/testdir/test_virtualedit.vim src/version.c
diffstat 3 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -2078,7 +2078,7 @@ did_set_string_option(
 	{
 	    if (opt_strings_flags(ve, p_ve_values, flags, TRUE) != OK)
 		errmsg = e_invalid_argument;
-	    else if (STRCMP(p_ve, oldval) != 0)
+	    else if (STRCMP(ve, oldval) != 0)
 	    {
 		// Recompute cursor position in case the new 've' setting
 		// changes something.
--- a/src/testdir/test_virtualedit.vim
+++ b/src/testdir/test_virtualedit.vim
@@ -537,6 +537,19 @@ func Test_global_local_virtualedit()
   set virtualedit&
 endfunc
 
+func Test_virtualedit_setlocal()
+  enew
+  setglobal virtualedit=all
+  setlocal virtualedit=all
+  normal! l
+  redraw
+  setlocal virtualedit=none
+  call assert_equal(1, wincol())
+
+  setlocal virtualedit&
+  set virtualedit&
+endfunc
+
 func Test_virtualedit_mouse()
   let save_mouse = &mouse
   set mouse=a
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1255,
+/**/
     1254,
 /**/
     1253,