diff options
Diffstat (limited to 'data/vim/patches/8.1.0201')
-rw-r--r-- | data/vim/patches/8.1.0201 | 332 |
1 files changed, 0 insertions, 332 deletions
diff --git a/data/vim/patches/8.1.0201 b/data/vim/patches/8.1.0201 deleted file mode 100644 index b978d9642..000000000 --- a/data/vim/patches/8.1.0201 +++ /dev/null @@ -1,332 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0201 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 8.1.0201 -Problem: Newer Python uses "importlib" instead of "imp". -Solution: Use "importlib" for newer Python versions. (closes #3163) -Files: src/if_py_both.h, src/testdir/test87.in - - -*** ../vim-8.1.0200/src/if_py_both.h 2018-07-08 17:18:58.420462346 +0200 ---- src/if_py_both.h 2018-07-22 04:05:36.131054785 +0200 -*************** -*** 88,95 **** ---- 88,99 ---- - static PyObject *vim_module; - 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 *VimError; - -*************** -*** 539,544 **** ---- 543,549 ---- - return 0; - } - -+ #if PY_VERSION_HEX < 0x030700f0 - typedef struct - { - PyObject_HEAD -*************** -*** 567,572 **** ---- 572,578 ---- - {"load_module", (PyCFunction)LoaderLoadModule, METH_VARARGS, ""}, - { NULL, NULL, 0, NULL} - }; -+ #endif - - /* Check to see whether a Vim error has been reported, or a keyboard - * interrupt has been detected. -*************** -*** 1163,1168 **** ---- 1169,1205 ---- - return ret; - } - -+ #if PY_VERSION_HEX >= 0x030700f0 -+ static PyObject * -+ FinderFindSpec(PyObject *self, PyObject *args) -+ { -+ char *fullname; -+ PyObject *paths; -+ PyObject *target = Py_None; -+ PyObject *spec; -+ -+ if (!PyArg_ParseTuple(args, "s|O", &fullname, &target)) -+ return NULL; -+ -+ if (!(paths = Vim_GetPaths(self))) -+ return NULL; -+ -+ spec = PyObject_CallFunction(py_find_spec, "sNN", fullname, paths, target); -+ -+ Py_DECREF(paths); -+ -+ if (!spec) -+ { -+ if (PyErr_Occurred()) -+ return NULL; -+ -+ Py_INCREF(Py_None); -+ return Py_None; -+ } -+ -+ return spec; -+ } -+ #else - static PyObject * - call_load_module(char *name, int len, PyObject *find_module_result) - { -*************** -*** 1305,1310 **** ---- 1342,1348 ---- - - return (PyObject *) loader; - } -+ #endif - - static PyObject * - VimPathHook(PyObject *self UNUSED, PyObject *args) -*************** -*** 1336,1342 **** ---- 1374,1384 ---- - {"chdir", (PyCFunction)VimChdir, METH_VARARGS|METH_KEYWORDS, "Change directory"}, - {"fchdir", (PyCFunction)VimFchdir, METH_VARARGS|METH_KEYWORDS, "Change directory"}, - {"foreach_rtp", VimForeachRTP, METH_O, "Call given callable for each path in &rtp"}, -+ #if PY_VERSION_HEX >= 0x030700f0 -+ {"find_spec", FinderFindSpec, METH_VARARGS, "Internal use only, returns spec object for any input it receives"}, -+ #else - {"find_module", FinderFindModule, METH_VARARGS, "Internal use only, returns loader object for any input it receives"}, -+ #endif - {"path_hook", VimPathHook, METH_VARARGS, "Hook function to install in sys.path_hooks"}, - {"_get_paths", (PyCFunction)Vim_GetPaths, METH_NOARGS, "Get &rtp-based additions to sys.path"}, - { NULL, NULL, 0, NULL} -*************** -*** 6545,6550 **** ---- 6587,6593 ---- - OptionsType.tp_traverse = (traverseproc)OptionsTraverse; - OptionsType.tp_clear = (inquiry)OptionsClear; - -+ #if PY_VERSION_HEX < 0x030700f0 - vim_memset(&LoaderType, 0, sizeof(LoaderType)); - LoaderType.tp_name = "vim.Loader"; - LoaderType.tp_basicsize = sizeof(LoaderObject); -*************** -*** 6552,6557 **** ---- 6595,6601 ---- - LoaderType.tp_doc = "vim message object"; - LoaderType.tp_methods = LoaderMethods; - LoaderType.tp_dealloc = (destructor)LoaderDestructor; -+ #endif - - #if PY_MAJOR_VERSION >= 3 - vim_memset(&vimmodule, 0, sizeof(vimmodule)); -*************** -*** 6583,6589 **** ---- 6627,6635 ---- - PYTYPE_READY(FunctionType); - PYTYPE_READY(OptionsType); - PYTYPE_READY(OutputType); -+ #if PY_VERSION_HEX < 0x030700f0 - PYTYPE_READY(LoaderType); -+ #endif - return 0; - } - -*************** -*** 6707,6713 **** ---- 6753,6761 ---- - {"List", (PyObject *)&ListType}, - {"Function", (PyObject *)&FunctionType}, - {"Options", (PyObject *)&OptionsType}, -+ #if PY_VERSION_HEX < 0x030700f0 - {"_Loader", (PyObject *)&LoaderType}, -+ #endif - }; - - #define ADD_OBJECT(m, name, obj) \ -*************** -*** 6729,6734 **** ---- 6777,6786 ---- - PyObject *other_module; - PyObject *attr; - PyObject *imp; -+ #if PY_VERSION_HEX >= 0x030700f0 -+ PyObject *dict; -+ PyObject *cls; -+ #endif - - for (i = 0; i < (int)(sizeof(numeric_constants) - / sizeof(struct numeric_constant)); -*************** -*** 6801,6806 **** ---- 6853,6880 ---- - - ADD_OBJECT(m, "VIM_SPECIAL_PATH", vim_special_path_object); - -+ #if PY_VERSION_HEX >= 0x030700f0 -+ if (!(imp = PyImport_ImportModule("importlib.machinery"))) -+ return -1; -+ -+ dict = PyModule_GetDict(imp); -+ -+ if (!(cls = PyDict_GetItemString(dict, "PathFinder"))) -+ { -+ Py_DECREF(imp); -+ return -1; -+ } -+ -+ if (!(py_find_spec = PyObject_GetAttrString(cls, "find_spec"))) -+ { -+ Py_DECREF(imp); -+ return -1; -+ } -+ -+ Py_DECREF(imp); -+ -+ ADD_OBJECT(m, "_find_spec", py_find_spec); -+ #else - if (!(imp = PyImport_ImportModule("imp"))) - return -1; - -*************** -*** 6821,6826 **** ---- 6895,6901 ---- - - ADD_OBJECT(m, "_find_module", py_find_module); - ADD_OBJECT(m, "_load_module", py_load_module); -+ #endif - - return 0; - } -*** ../vim-8.1.0200/src/testdir/test87.in 2017-03-05 18:33:37.000000000 +0100 ---- src/testdir/test87.in 2018-07-22 04:05:36.131054785 +0200 -*************** -*** 219,224 **** ---- 219,225 ---- - import re - - py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$') -+ py37_exception_repr = re.compile(r'([^\(\),])(\)+)$') - - def ee(expr, g=globals(), l=locals()): - cb = vim.current.buffer -*************** -*** 227,243 **** - exec(expr, g, l) - except Exception as e: - if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."): -! cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1])))) - elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0: -! cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", ''))))) - elif sys.version_info >= (3, 6) and e.__class__ is ModuleNotFoundError: - # Python 3.6 gives ModuleNotFoundError, change it to an ImportError -! cb.append(expr + ':' + repr((ImportError, ImportError(str(e).replace("'", ''))))) - elif sys.version_info >= (3, 3) and e.__class__ is TypeError: - m = py33_type_error_pattern.search(str(e)) - if m: - msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2)) -! cb.append(expr + ':' + repr((e.__class__, TypeError(msg)))) - else: - msg = repr((e.__class__, e)) - # Messages changed with Python 3.6, change new to old. ---- 228,244 ---- - exec(expr, g, l) - except Exception as e: - if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."): -! msg = repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1]))) - elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0: -! msg = repr((e.__class__, ImportError(str(e).replace("'", '')))) - elif sys.version_info >= (3, 6) and e.__class__ is ModuleNotFoundError: - # Python 3.6 gives ModuleNotFoundError, change it to an ImportError -! msg = repr((ImportError, ImportError(str(e).replace("'", '')))) - elif sys.version_info >= (3, 3) and e.__class__ is TypeError: - m = py33_type_error_pattern.search(str(e)) - if m: - msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2)) -! msg = repr((e.__class__, TypeError(msg))) - else: - msg = repr((e.__class__, e)) - # Messages changed with Python 3.6, change new to old. -*************** -*** 249,257 **** - oldmsg2 = '''"Can't convert 'int' object to str implicitly"''' - if msg.find(newmsg2) > -1: - msg = msg.replace(newmsg2, oldmsg2) -- cb.append(expr + ':' + msg) - elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte': -! cb.append(expr + ':' + repr((TypeError, TypeError('expected bytes with no null')))) - else: - msg = repr((e.__class__, e)) - # Some Python versions say can't, others cannot. ---- 250,257 ---- - oldmsg2 = '''"Can't convert 'int' object to str implicitly"''' - if msg.find(newmsg2) > -1: - msg = msg.replace(newmsg2, oldmsg2) - elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte': -! msg = repr((TypeError, TypeError('expected bytes with no null'))) - else: - msg = repr((e.__class__, e)) - # Some Python versions say can't, others cannot. -*************** -*** 262,272 **** - msg = msg.replace('"cannot ', '\'cannot ') - if msg.find(' attributes"') > -1: - msg = msg.replace(' attributes"', ' attributes\'') -! cb.append(expr + ':' + msg) - else: - cb.append(expr + ':NOT FAILED') - except Exception as e: -! cb.append(expr + '::' + repr((e.__class__, e))) - EOF - :fun New(...) - : return ['NewStart']+a:000+['NewEnd'] ---- 262,277 ---- - msg = msg.replace('"cannot ', '\'cannot ') - if msg.find(' attributes"') > -1: - msg = msg.replace(' attributes"', ' attributes\'') -! if sys.version_info >= (3, 7): -! msg = py37_exception_repr.sub(r'\1,\2', msg) -! cb.append(expr + ':' + msg) - else: - cb.append(expr + ':NOT FAILED') - except Exception as e: -! msg = repr((e.__class__, e)) -! if sys.version_info >= (3, 7): -! msg = py37_exception_repr.sub(r'\1,\2', msg) -! cb.append(expr + '::' + msg) - EOF - :fun New(...) - : return ['NewStart']+a:000+['NewEnd'] -*** ../vim-8.1.0200/src/version.c 2018-07-20 23:36:21.171368602 +0200 ---- src/version.c 2018-07-22 04:24:39.197154869 +0200 -*************** -*** 791,792 **** ---- 791,794 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 201, - /**/ - --- -FIRST HEAD: All right! All right! We'll kill him first and then have tea and - biscuits. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |