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

Raspunde prin e-mail lui