diff --git a/7.3.948 b/7.3.948 new file mode 100644 index 0000000..d2d2eb3 --- /dev/null +++ b/7.3.948 @@ -0,0 +1,423 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.948 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.948 +Problem: Cannot build with Python 2.2 +Solution: Make Python interface work with Python 2.2 + Make 2.2 the first supported version. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.ok, src/configure.in, src/auto/configure + + +*** ../vim-7.3.947/src/if_py_both.h 2013-05-15 14:39:47.000000000 +0200 +--- src/if_py_both.h 2013-05-15 14:49:11.000000000 +0200 +*************** +*** 564,569 **** +--- 564,570 ---- + return (PyObject *)(self); + } + ++ #if 0 /* unused */ + static void + IterDestructor(PyObject *self) + { +*************** +*** 573,578 **** +--- 574,580 ---- + + DESTRUCTOR_FINISH(self); + } ++ #endif + + static PyObject * + IterNext(PyObject *self) +*************** +*** 696,708 **** + } + else + { +! if (!PyBool_Check(val)) +! { +! PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed")); +! return -1; +! } +! +! if (val == Py_True) + this->dict->dv_lock = VAR_LOCKED; + else + this->dict->dv_lock = 0; +--- 698,704 ---- + } + else + { +! if (PyObject_IsTrue(val)) + this->dict->dv_lock = VAR_LOCKED; + else + this->dict->dv_lock = 0; +*************** +*** 1202,1214 **** + } + else + { +! if (!PyBool_Check(val)) +! { +! PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed")); +! return -1; +! } +! +! if (val == Py_True) + this->list->lv_lock = VAR_LOCKED; + else + this->list->lv_lock = 0; +--- 1198,1204 ---- + } + else + { +! if (PyObject_IsTrue(val)) + this->list->lv_lock = VAR_LOCKED; + else + this->list->lv_lock = 0; +*************** +*** 1484,1497 **** + + if (flags & SOPT_BOOL) + { +! if (!PyBool_Check(valObject)) +! { +! PyErr_SetString(PyExc_ValueError, "Object must be boolean"); +! return -1; +! } +! +! r = set_option_value_for(key, (valObject == Py_True), NULL, opt_flags, +! this->opt_type, this->from); + } + else if (flags & SOPT_NUM) + { +--- 1474,1481 ---- + + if (flags & SOPT_BOOL) + { +! r = set_option_value_for(key, PyObject_IsTrue(valObject), NULL, +! opt_flags, this->opt_type, this->from); + } + else if (flags & SOPT_NUM) + { +*** ../vim-7.3.947/src/if_python3.c 2013-05-15 14:39:47.000000000 +0200 +--- src/if_python3.c 2013-05-15 14:42:21.000000000 +0200 +*************** +*** 156,161 **** +--- 156,162 ---- + # define PyMapping_Items py3_PyMapping_Items + # define PyIter_Next py3_PyIter_Next + # define PyObject_GetIter py3_PyObject_GetIter ++ # define PyObject_IsTrue py3_PyObject_IsTrue + # define PyModule_GetDict py3_PyModule_GetDict + #undef PyRun_SimpleString + # define PyRun_SimpleString py3_PyRun_SimpleString +*************** +*** 264,269 **** +--- 265,271 ---- + static PyObject* (*py3_PyDict_New)(void); + static PyObject* (*py3_PyIter_Next)(PyObject *); + static PyObject* (*py3_PyObject_GetIter)(PyObject *); ++ static int (*py3_PyObject_IsTrue)(PyObject *); + static PyObject* (*py3_Py_BuildValue)(char *, ...); + static int (*py3_PyType_Ready)(PyTypeObject *type); + static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item); +*************** +*** 392,397 **** +--- 394,400 ---- + {"PyMapping_Items", (PYTHON_PROC*)&py3_PyMapping_Items}, + {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next}, + {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter}, ++ {"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue}, + {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong}, + {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New}, + {"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready}, +*** ../vim-7.3.947/src/if_python.c 2013-05-15 14:39:47.000000000 +0200 +--- src/if_python.c 2013-05-15 14:42:21.000000000 +0200 +*************** +*** 229,234 **** +--- 229,235 ---- + # define _Py_TrueStruct (*dll__Py_TrueStruct) + # define PyObject_Init dll__PyObject_Init + # define PyObject_GetIter dll_PyObject_GetIter ++ # define PyObject_IsTrue dll_PyObject_IsTrue + # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000 + # define PyType_IsSubtype dll_PyType_IsSubtype + # endif +*************** +*** 324,329 **** +--- 325,331 ---- + static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *); + static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *); + static PyObject* (*dll_PyObject_GetIter)(PyObject *); ++ static int (*dll_PyObject_IsTrue)(PyObject *); + # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 + static iternextfunc dll__PyObject_NextNotImplemented; + # endif +*************** +*** 459,464 **** +--- 461,467 ---- + {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New}, + {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init}, + {"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter}, ++ {"PyObject_IsTrue", (PYTHON_PROC*)&dll_PyObject_IsTrue}, + # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 + {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented}, + # endif +*************** +*** 787,793 **** + * so the following does both: unlock GIL and save thread state in TLS + * without deleting thread state + */ +! PyEval_SaveThread(); + + initialised = 1; + } +--- 790,799 ---- + * so the following does both: unlock GIL and save thread state in TLS + * without deleting thread state + */ +! #ifndef PY_CAN_RECURSE +! saved_python_thread = +! #endif +! PyEval_SaveThread(); + + initialised = 1; + } +*** ../vim-7.3.947/src/testdir/test86.in 2013-05-15 14:39:47.000000000 +0200 +--- src/testdir/test86.in 2013-05-15 14:42:21.000000000 +0200 +*************** +*** 183,220 **** + : $put ='[0.0, 0.0]' + :endif + :let messages=[] +! :py <>> paste + p/gopts1: False +- inv: 2! ValueError + p/wopts1! KeyError + inv: 2! KeyError + wopts1! KeyError +--- 82,87 ---- +*************** +*** 224,230 **** + wopts2! KeyError + wopts3! KeyError + p/bopts1: False +- inv: 2! ValueError + G: 0 + W: 1:0 2:1 3:0 4:1 + B: 1:0 2:1 3:0 4:1 +--- 223,228 ---- +*************** +*** 280,286 **** + wopts2! KeyError + wopts3! KeyError + p/bopts1: False +- inv: 2! ValueError + G: 0 + W: 1:0 2:1 3:0 4:1 + B: 1:0 2:1 3:0 4:1 +--- 278,283 ---- +*** ../vim-7.3.947/src/testdir/test87.ok 2013-05-15 14:39:47.000000000 +0200 +--- src/testdir/test87.ok 2013-05-15 14:42:21.000000000 +0200 +*************** +*** 71,77 **** + bar + >>> paste + p/gopts1: False +- inv: 2! ValueError + p/wopts1! KeyError + inv: 2! KeyError + wopts1! KeyError +--- 71,76 ---- +*************** +*** 213,219 **** + wopts2! KeyError + wopts3! KeyError + p/bopts1: False +- inv: 2! ValueError + G: 0 + W: 1:0 2:1 3:0 4:1 + B: 1:0 2:1 3:0 4:1 +--- 212,217 ---- +*************** +*** 269,275 **** + wopts2! KeyError + wopts3! KeyError + p/bopts1: False +- inv: 2! ValueError + G: 0 + W: 1:0 2:1 3:0 4:1 + B: 1:0 2:1 3:0 4:1 +--- 267,272 ---- +*** ../vim-7.3.947/src/configure.in 2013-05-06 04:21:35.000000000 +0200 +--- src/configure.in 2013-05-15 14:46:11.000000000 +0200 +*************** +*** 863,872 **** + ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'` + ]]) + +! dnl -- it must be at least version 1.4 +! AC_MSG_CHECKING(Python is 1.4 or better) + if ${vi_cv_path_python} -c \ +! "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)" + then + AC_MSG_RESULT(yep) + +--- 863,872 ---- + ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'` + ]]) + +! dnl -- it must be at least version 2.2 +! AC_MSG_CHECKING(Python is 2.2 or better) + if ${vi_cv_path_python} -c \ +! "import sys; sys.exit(${vi_cv_var_python_version} < 2.2)" + then + AC_MSG_RESULT(yep) + +*** ../vim-7.3.947/src/auto/configure 2013-05-06 04:21:35.000000000 +0200 +--- src/auto/configure 2013-05-15 14:46:28.000000000 +0200 +*************** +*** 5289,5298 **** + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python_version" >&5 + $as_echo "$vi_cv_var_python_version" >&6; } + +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python is 1.4 or better" >&5 +! $as_echo_n "checking Python is 1.4 or better... " >&6; } + if ${vi_cv_path_python} -c \ +! "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yep" >&5 + $as_echo "yep" >&6; } +--- 5289,5298 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python_version" >&5 + $as_echo "$vi_cv_var_python_version" >&6; } + +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python is 2.2 or better" >&5 +! $as_echo_n "checking Python is 2.2 or better... " >&6; } + if ${vi_cv_path_python} -c \ +! "import sys; sys.exit(${vi_cv_var_python_version} < 2.2)" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yep" >&5 + $as_echo "yep" >&6; } +*** ../vim-7.3.947/src/version.c 2013-05-15 14:39:47.000000000 +0200 +--- src/version.c 2013-05-15 14:43:39.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 948, + /**/ + +-- +MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes + for future use in casseroles and sauces. +MY WAY: What leftover wine? + + /// 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 ///