summaryrefslogtreecommitdiffstats
path: root/src/if_py_both.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-02-14 13:28:45 +0100
committerBram Moolenaar <Bram@vim.org>2019-02-14 13:28:45 +0100
commitb999ba2778b6c02fdd100e498a9ba5b2e7036f7d (patch)
treeb79ef646097b6142ee8b48626ac79391b834c8ec /src/if_py_both.h
parenta787019518a540a7b4d0070f15467931b870ac89 (diff)
patch 8.1.0916: with Python 3.7 "find_module" is not made availablev8.1.0916
Problem: With Python 3.7 "find_module" is not made available. Solution: Also add "find_module" with Python 3.7. (Joel Frederico, closes #3954)
Diffstat (limited to 'src/if_py_both.h')
-rw-r--r--src/if_py_both.h31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h
index a0c1663784..8d11488d39 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -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);