diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-02-14 13:28:45 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-02-14 13:28:45 +0100 |
commit | b999ba2778b6c02fdd100e498a9ba5b2e7036f7d (patch) | |
tree | b79ef646097b6142ee8b48626ac79391b834c8ec /src/if_py_both.h | |
parent | a787019518a540a7b4d0070f15467931b870ac89 (diff) | |
download | vim-git-b999ba2778b6c02fdd100e498a9ba5b2e7036f7d.tar.gz |
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.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h index a0c166378..8d11488d3 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); |