From: Guido van Rossum <guido@CNRI.Reston.VA.US> Subject: Re: Missing PySequence_In in 1.5.2b2 causing problems with existing .pyd on win32 Date: Wed, 17 Mar 1999 09:50:12 -0500 To: "Brad Clements" <bkc@murkworks.com> > Subject says it all. > > Any plans to re-instate this call and PyEval_CallObject > > I know the source says "uncomment for backwards compat", but then I have a > different python.dll than everyone else. > > Btw, this is causing problems with Zope.. Good catch! Even though I intended to have DLL-level backwards compatibility, the lack of an appropriate declarations in the .h files made this not work on Windows. (And where does the source actually say anything about uncommenting? I couldn't find it :-) The following -- untested -- patches should fix both problems. Please test and let me know if it works so I can add it to the distribution! Index: abstract.h =================================================================== RCS file: /projects/cvsroot/python/dist/src/Include/abstract.h,v retrieving revision 2.15 diff -c -r2.15 abstract.h *** abstract.h 1998/12/04 18:47:50 2.15 --- abstract.h 1999/03/17 14:36:32 *************** *** 754,759 **** --- 754,765 ---- */ DL_IMPORT(int) PySequence_Contains Py_PROTO((PyObject *o, PyObject *value)); + + /* For DLL-level backwards compatibility */ + #undef PySequence_In + DL_IMPORT(int) PySequence_In Py_PROTO((PyObject *o, PyObject *value)); + + /* For source-level backwards compatibility */ #define PySequence_In PySequence_Contains /* Index: ceval.h =================================================================== RCS file: /projects/cvsroot/python/dist/src/Include/ceval.h,v retrieving revision 2.29 diff -c -r2.29 ceval.h *** ceval.h 1998/12/04 18:47:52 2.29 --- ceval.h 1999/03/17 14:42:31 *************** *** 40,45 **** --- 40,49 ---- DL_IMPORT(PyObject *) PyEval_CallObjectWithKeywords Py_PROTO((PyObject *, PyObject *, PyObject *)); + /* DLL-level Backwards compatibility: */ + #undef PyEval_CallObject + DL_IMPORT(PyObject *) PyEval_CallObject Py_PROTO((PyObject *, PyObject *)); + /* Inline this */ #define PyEval_CallObject(func,arg) \ PyEval_CallObjectWithKeywords(func, arg, (PyObject *)NULL) --Guido van Rossum (home page: http://www.python.org/~guido/)