Danek Duvall wrote:
> On Fri, Jun 29, 2012 at 12:55:10PM +0200, Bram Moolenaar wrote:
>
> > Patch 7.3.569
> > Problem: Evaluating Vim expression in Python is insufficient.
> > Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX)
> > Files: runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c,
> > src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c,
> > src/proto/eval.pro, src/proto/if_python.pro,
> > src/proto/if_python3.pro, src/testdir/Make_amiga.mak,
> > src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
> > src/testdir/Make_os2.mak, src/testdir/Makefile,
> > src/testdir/test86.in, src/testdir/test86.ok,
> > src/testdir/test87.in, src/testdir/test87.ok
> >
> > [ ... ]
> >
> > *** ../vim-7.3.568/src/if_python.c 2011-08-28 16:00:14.000000000 +0200
> > --- src/if_python.c 2012-06-29 12:47:48.000000000 +0200
> > ***************
> > *** 179,186 ****
> > --- 209,218 ----
> > # define Py_Finalize dll_Py_Finalize
> > # define Py_IsInitialized dll_Py_IsInitialized
> > # define _PyObject_New dll__PyObject_New
> > + # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
> > # define _Py_NoneStruct (*dll__Py_NoneStruct)
> > # define PyObject_Init dll__PyObject_Init
> > + # define PyObject_GetIter dll_PyObject_GetIter
> > # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
> > # define PyType_IsSubtype dll_PyType_IsSubtype
> > # endif
>
> In addition to the PyCapsule problems, it appears that
> _PyObject_NextNotImplemented is not present in Python 2.6, and so when I
> try to run a python command after today's series of patches, I get
>
> E448: Could not load library function _PyObject_NextNotImplemented
> E263: Sorry, this command is disabled, the Python library could not be
> loaded.
It appears they are only used indirectly. Thus putting them in #ifdefs
for Python 2.7 and later should work? Try this patch:
*** ../../mercurial/vim73/src/if_python.c 2012-06-29 19:14:48.000000000
+0200
--- if_python.c 2012-06-30 12:59:38.000000000 +0200
***************
*** 214,220 ****
# define Py_Finalize dll_Py_Finalize
# define Py_IsInitialized dll_Py_IsInitialized
# define _PyObject_New dll__PyObject_New
! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
# define _Py_NoneStruct (*dll__Py_NoneStruct)
# define PyObject_Init dll__PyObject_Init
# define PyObject_GetIter dll_PyObject_GetIter
--- 214,222 ----
# define Py_Finalize dll_Py_Finalize
# define Py_IsInitialized dll_Py_IsInitialized
# define _PyObject_New dll__PyObject_New
! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
! # endif
# define _Py_NoneStruct (*dll__Py_NoneStruct)
# define PyObject_Init dll__PyObject_Init
# define PyObject_GetIter dll_PyObject_GetIter
***************
*** 310,316 ****
--- 312,320 ----
static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
static PyObject* (*dll_PyObject_GetIter)(PyObject *);
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
static iternextfunc dll__PyObject_NextNotImplemented;
+ # endif
static PyObject* dll__Py_NoneStruct;
# if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
***************
*** 430,436 ****
--- 434,442 ----
{"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
{"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
{"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
{"_PyObject_NextNotImplemented",
(PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
+ # endif
{"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
# if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
{"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
--
hundred-and-one symptoms of being an internet addict:
88. Every single time you press the 'Get mail' button...it does get new mail.
/// Bram Moolenaar -- [email protected] -- 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 ///
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php