Problem: Using :python sets 'pyxversion' even when not executed.
Solution: Check the "skip" flag. (Shane Harper, closes #3995)
{
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,
{
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,
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
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 950,
/**/
949,
/**/