From 7e85d3d432e799fc56126f6e3867b52539978343 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 23 Jun 2013 16:40:39 +0200 Subject: [PATCH] updated for version 7.3.1237 Problem: Python: non-import errors not handled correctly. Solution: Let non-ImportError exceptions pass the finder. (ZyX) --- src/if_py_both.h | 8 ++++++++ src/testdir/test86.ok | 2 +- src/testdir/test87.ok | 2 +- 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 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, /**/ -- 2.40.0