From: Bram Moolenaar Date: Sun, 23 Jun 2013 14:40:39 +0000 (+0200) Subject: updated for version 7.3.1237 X-Git-Tag: v7.3.1237 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e85d3d432e799fc56126f6e3867b52539978343;p=vim 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 8f60550f9..4f977c38c 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 6fdab0ccf..c8517b3dc 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 06c97a3d2..9a2d686cd 100644 --- a/src/testdir/test87.ok +++ b/src/testdir/test87.ok @@ -486,7 +486,7 @@ vim.foreach_rtp(int, 2):(, TypeError('foreach_rtp() takes exa > 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/version.c b/src/version.c index 69603fbc9..59d4aa0a6 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1237, /**/ 1236, /**/