changeset 15888:a83c4b1f8ea2 v8.1.0950

patch 8.1.0950: using :python sets 'pyxversion' even when not executed commit https://github.com/vim/vim/commit/14816ad6e58336773443f5ee2e4aa9e384af65d2 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Feb 18 22:04:56 2019 +0100 patch 8.1.0950: using :python sets 'pyxversion' even when not executed Problem: Using :python sets 'pyxversion' even when not executed. Solution: Check the "skip" flag. (Shane Harper, closes https://github.com/vim/vim/issues/3995)
author Bram Moolenaar <Bram@vim.org>
date Mon, 18 Feb 2019 22:15:07 +0100
parents 071f1cac190b
children 75aa353fddf4
files src/if_python.c src/if_python3.c src/testdir/test_python2.vim src/testdir/test_python3.vim src/version.c
diffstat 5 files changed, 24 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -1109,12 +1109,12 @@ ex_python(exarg_T *eap)
 {
     char_u *script;
 
-    if (p_pyx == 0)
-	p_pyx = 2;
-
     script = script_get(eap, eap->arg);
     if (!eap->skip)
     {
+	if (p_pyx == 0)
+	    p_pyx = 2;
+
 	DoPyCommand(script == NULL ? (char *) eap->arg : (char *) script,
 		(rangeinitializer) init_range_cmd,
 		(runner) run_cmd,
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -1010,12 +1010,12 @@ ex_py3(exarg_T *eap)
 {
     char_u *script;
 
-    if (p_pyx == 0)
-	p_pyx = 3;
-
     script = script_get(eap, eap->arg);
     if (!eap->skip)
     {
+	if (p_pyx == 0)
+	    p_pyx = 3;
+
 	DoPyCommand(script == NULL ? (char *) eap->arg : (char *) script,
 		(rangeinitializer) init_range_cmd,
 		(runner) run_cmd,
--- a/src/testdir/test_python2.vim
+++ b/src/testdir/test_python2.vim
@@ -63,3 +63,11 @@ func Test_vim_function()
   py del f
   delfunc s:foo
 endfunc
+
+func Test_skipped_python_command_does_not_affect_pyxversion()
+  set pyxversion=0
+  if 0
+    python import vim
+  endif
+  call assert_equal(0, &pyxversion)  " This assertion would have failed with Vim 8.0.0251. (pyxversion was introduced in 8.0.0251.)
+endfunc
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -63,3 +63,11 @@ func Test_vim_function()
   py3 del f
   delfunc s:foo
 endfunc
+
+func Test_skipped_python3_command_does_not_affect_pyxversion()
+  set pyxversion=0
+  if 0
+    python3 import vim
+  endif
+  call assert_equal(0, &pyxversion)  " This assertion would have failed with Vim 8.0.0251. (pyxversion was introduced in 8.0.0251.)
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -780,6 +780,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    950,
+/**/
     949,
 /**/
     948,