diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-06-23 16:40:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-06-23 16:40:39 +0200 |
commit | 7e85d3d432e799fc56126f6e3867b52539978343 (patch) | |
tree | 7e94ca76eea48b20be0f1ec49128678880d601c8 | |
parent | dee2e315d786cbe9d5bba2d388fb72d96ad1a846 (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.h | 8 | ||||
-rw-r--r-- | src/testdir/test86.ok | 2 | ||||
-rw-r--r-- | src/testdir/test87.ok | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |