]> granicus.if.org Git - vim/commitdiff
patch 8.1.0916: with Python 3.7 "find_module" is not made available v8.1.0916
authorBram Moolenaar <Bram@vim.org>
Thu, 14 Feb 2019 12:28:45 +0000 (13:28 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 14 Feb 2019 12:28:45 +0000 (13:28 +0100)
Problem:    With Python 3.7 "find_module" is not made available.
Solution:   Also add "find_module" with Python 3.7. (Joel Frederico,
            closes #3954)

src/if_py_both.h
src/version.c

index a0c16637841e92e872f21051ea67395d0b3053e5..8d11488d3989da551dc4bd9ed4fdd7992a29059b 100644 (file)
@@ -87,9 +87,9 @@ static PyObject *vim_special_path_object;
 #if PY_VERSION_HEX >= 0x030700f0
 static PyObject *py_find_spec;
 #else
-static PyObject *py_find_module;
 static PyObject *py_load_module;
 #endif
+static PyObject *py_find_module;
 
 static PyObject *VimError;
 
@@ -759,7 +759,7 @@ VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict)
        sprintf(buf, "%ld", (long)our_tv->vval.v_number);
        ret = PyString_FromString((char *)buf);
     }
-# ifdef FEAT_FLOAT
+#ifdef FEAT_FLOAT
     else if (our_tv->v_type == VAR_FLOAT)
     {
        char buf[NUMBUFLEN];
@@ -767,7 +767,7 @@ VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict)
        sprintf(buf, "%f", our_tv->vval.v_float);
        ret = PyString_FromString((char *)buf);
     }
-# endif
+#endif
     else if (our_tv->v_type == VAR_LIST)
     {
        list_T          *list = our_tv->vval.v_list;
@@ -6093,18 +6093,18 @@ convert_dl(PyObject *obj, typval_T *tv,
 
     sprintf(hexBuf, "%p", (void *)obj);
 
-# ifdef PY_USE_CAPSULE
+#ifdef PY_USE_CAPSULE
     capsule = PyDict_GetItemString(lookup_dict, hexBuf);
-# else
+#else
     capsule = (PyObject *)PyDict_GetItemString(lookup_dict, hexBuf);
-# endif
+#endif
     if (capsule == NULL)
     {
-# ifdef PY_USE_CAPSULE
+#ifdef PY_USE_CAPSULE
        capsule = PyCapsule_New(tv, NULL, NULL);
-# else
+#else
        capsule = PyCObject_FromVoidPtr(tv, NULL);
-# endif
+#endif
        if (PyDict_SetItemString(lookup_dict, hexBuf, capsule))
        {
            Py_DECREF(capsule);
@@ -6130,11 +6130,11 @@ convert_dl(PyObject *obj, typval_T *tv,
     {
        typval_T        *v;
 
-# ifdef PY_USE_CAPSULE
+#ifdef PY_USE_CAPSULE
        v = PyCapsule_GetPointer(capsule, NULL);
-# else
+#else
        v = PyCObject_AsVoidPtr(capsule);
-# endif
+#endif
        copy_tv(v, tv);
     }
     return 0;
@@ -6921,6 +6921,13 @@ populate_module(PyObject *m)
        return -1;
     }
 
+    if ((py_find_module = PyObject_GetAttrString(cls, "find_module")))
+    {
+       // find_module() is deprecated, this may stop working in some later
+       // version.
+        ADD_OBJECT(m, "_find_module", py_find_module);
+    }
+
     Py_DECREF(imp);
 
     ADD_OBJECT(m, "_find_spec", py_find_spec);
index d0255a1b8eb19d5d27f5e946ea17a28817585a2a..7614566d8d3a6941084a3328323147780b43ddf2 100644 (file)
@@ -783,6 +783,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    916,
 /**/
     915,
 /**/