updated for version 7.3.1237
Problem: Python: non-import errors not handled correctly.
Solution: Let non-ImportError exceptions pass the finder. (ZyX)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 8f60550..4f977c3 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1199,6 +1199,14 @@
if (!module)
{
+ if (PyErr_Occurred())
+ {
+ if (PyErr_ExceptionMatches(PyExc_ImportError))
+ PyErr_Clear();
+ else
+ return NULL;
+ }
+
Py_INCREF(Py_None);
return Py_None;
}
diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok
index 6fdab0c..c8517b3 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -497,7 +497,7 @@
> import
import xxx_no_such_module_xxx:ImportError:('No module named xxx_no_such_module_xxx',)
import failing_import:ImportError:('No module named failing_import',)
-import failing:ImportError:('No module named failing',)
+import failing:NotImplementedError:()
> Dictionary
>> DictionaryConstructor
vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',)
diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok
index 06c97a3..9a2d686 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -486,7 +486,7 @@
> import
import xxx_no_such_module_xxx:(<class 'ImportError'>, ImportError('No module named xxx_no_such_module_xxx',))
import failing_import:(<class 'ImportError'>, ImportError('No module named failing_import',))
-import failing:(<class 'ImportError'>, ImportError('No module named failing',))
+import failing:(<class 'NotImplementedError'>, NotImplementedError())
> Dictionary
>> DictionaryConstructor
vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',))
diff --git a/src/version.c b/src/version.c
index 69603fb..59d4aa0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1237,
+/**/
1236,
/**/
1235,