diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-02-18 22:04:56 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-02-18 22:04:56 +0100 |
commit | 14816ad6e58336773443f5ee2e4aa9e384af65d2 (patch) | |
tree | f53327ad0ffed33997cf4bbe9ce4725cb2221980 | |
parent | 0472b6d149445579e3a63519b15f099f9adda3f7 (diff) | |
download | vim-git-14816ad6e58336773443f5ee2e4aa9e384af65d2.tar.gz |
patch 8.1.0950: using :python sets 'pyxversion' even when not executedv8.1.0950
Problem: Using :python sets 'pyxversion' even when not executed.
Solution: Check the "skip" flag. (Shane Harper, closes #3995)
-rw-r--r-- | src/if_python.c | 6 | ||||
-rw-r--r-- | src/if_python3.c | 6 | ||||
-rw-r--r-- | src/testdir/test_python2.vim | 8 | ||||
-rw-r--r-- | src/testdir/test_python3.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 24 insertions, 6 deletions
diff --git a/src/if_python.c b/src/if_python.c index 06c46bc37..c0a3fe105 100644 --- 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, diff --git a/src/if_python3.c b/src/if_python3.c index 8b4bee9f7..3c6ee15e3 100644 --- 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, diff --git a/src/testdir/test_python2.vim b/src/testdir/test_python2.vim index d79400de7..43c89c972 100644 --- 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 diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim index 344034af0..272ff9ef8 100644 --- 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 diff --git a/src/version.c b/src/version.c index 32abc71b0..fe498ecf5 100644 --- 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, |