summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-06-23 16:40:39 +0200
committerBram Moolenaar <Bram@vim.org>2013-06-23 16:40:39 +0200
commit7e85d3d432e799fc56126f6e3867b52539978343 (patch)
tree7e94ca76eea48b20be0f1ec49128678880d601c8
parentdee2e315d786cbe9d5bba2d388fb72d96ad1a846 (diff)
updated for version 7.3.1237v7.3.1237
Problem: Python: non-import errors not handled correctly. Solution: Let non-ImportError exceptions pass the finder. (ZyX)
-rw-r--r--src/if_py_both.h8
-rw-r--r--src/testdir/test86.ok2
-rw-r--r--src/testdir/test87.ok2
-rw-r--r--src/version.c2
4 files changed, 12 insertions, 2 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 8f60550f93..4f977c38c2 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1199,6 +1199,14 @@ FinderFindModule(PyObject *self, PyObject *args)
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 6fdab0ccf0..c8517b3dcd 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -497,7 +497,7 @@ vim.foreach_rtp(int, 2):TypeError:('foreach_rtp() takes exactly one argument (2
> 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 06c97a3d2c..9a2d686cd9 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -486,7 +486,7 @@ vim.foreach_rtp(int, 2):(<class 'TypeError'>, TypeError('foreach_rtp() takes exa
> 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 69603fbc96..59d4aa0a60 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1237,
+/**/
1236,
/**/
1235,