| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | #ifndef Py_MODSUPPORT_H
 | 
					
						
							|  |  |  | #define Py_MODSUPPORT_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | /***********************************************************
 | 
					
						
							| 
									
										
										
										
											1995-01-04 19:06:22 +00:00
										 |  |  | Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, | 
					
						
							|  |  |  | The Netherlands. | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                         All Rights Reserved | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-10-25 14:44:06 +00:00
										 |  |  | Permission to use, copy, modify, and distribute this software and its | 
					
						
							|  |  |  | documentation for any purpose and without fee is hereby granted, | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | provided that the above copyright notice appear in all copies and that | 
					
						
							| 
									
										
										
										
											1996-10-25 14:44:06 +00:00
										 |  |  | both that copyright notice and this permission notice appear in | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | supporting documentation, and that the names of Stichting Mathematisch | 
					
						
							| 
									
										
										
										
											1996-10-25 14:44:06 +00:00
										 |  |  | Centrum or CWI or Corporation for National Research Initiatives or | 
					
						
							|  |  |  | CNRI not be used in advertising or publicity pertaining to | 
					
						
							|  |  |  | distribution of the software without specific, written prior | 
					
						
							|  |  |  | permission. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | While CWI is the initial source for this software, a modified version | 
					
						
							|  |  |  | is made available by the Corporation for National Research Initiatives | 
					
						
							|  |  |  | (CNRI) at the Internet address ftp://ftp.python.org.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH | 
					
						
							|  |  |  | REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF | 
					
						
							|  |  |  | MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH | 
					
						
							|  |  |  | CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL | 
					
						
							|  |  |  | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | 
					
						
							|  |  |  | PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | 
					
						
							|  |  |  | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | 
					
						
							|  |  |  | PERFORMANCE OF THIS SOFTWARE. | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-10-14 12:07:46 +00:00
										 |  |  | /* Module support interface */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | #ifdef HAVE_STDARG_PROTOTYPES
 | 
					
						
							| 
									
										
										
										
											1993-03-16 12:15:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <stdarg.h>
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(int) PyArg_Parse Py_PROTO((PyObject *, char *, ...)); | 
					
						
							|  |  |  | extern DL_IMPORT(int) PyArg_ParseTuple Py_PROTO((PyObject *, char *, ...)); | 
					
						
							|  |  |  | extern DL_IMPORT(int) PyArg_ParseTupleAndKeywords Py_PROTO((PyObject *, PyObject *, | 
					
						
							| 
									
										
										
										
											1997-02-14 16:36:35 +00:00
										 |  |  | 						 char *, char **, ...)); | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(PyObject *) Py_BuildValue Py_PROTO((char *, ...)); | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-03-16 12:15:04 +00:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-03-16 12:15:04 +00:00
										 |  |  | #include <varargs.h>
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* Better to have no prototypes at all for varargs functions in this case */ | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(int) PyArg_Parse(); | 
					
						
							|  |  |  | extern DL_IMPORT(int) PyArg_ParseTuple(); | 
					
						
							|  |  |  | extern DL_IMPORT(PyObject *) Py_BuildValue(); | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-03-16 12:15:04 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(int) PyArg_VaParse Py_PROTO((PyObject *, char *, va_list)); | 
					
						
							|  |  |  | extern DL_IMPORT(PyObject *) Py_VaBuildValue Py_PROTO((char *, va_list)); | 
					
						
							| 
									
										
										
										
											1992-01-27 16:50:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-01-03 12:40:24 +00:00
										 |  |  | #define PYTHON_API_VERSION 1007
 | 
					
						
							|  |  |  | #define PYTHON_API_STRING "1007"
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  | /* The API version is maintained (independently from the Python version)
 | 
					
						
							|  |  |  |    so we can detect mismatches between the interpreter and dynamically | 
					
						
							| 
									
										
										
										
											1996-07-30 16:41:02 +00:00
										 |  |  |    loaded modules.  These are diagnosticised by an error message but | 
					
						
							|  |  |  |    the module is still loaded (because the mismatch can only be tested | 
					
						
							|  |  |  |    after loading the module).  The error message is intended to | 
					
						
							|  |  |  |    explain the core dump a few seconds later. | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  |    The symbol PYTHON_API_STRING defines the same value as a string | 
					
						
							|  |  |  |    literal.  *** PLEASE MAKE SURE THE DEFINITIONS MATCH. *** | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  |    Please add a line or two to the top of this log for each API | 
					
						
							|  |  |  |    version change: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-01-03 12:40:24 +00:00
										 |  |  |    3-Jan-1999	GvR	1007	Decided to change back!  (Don't reuse 1008!) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    3-Dec-1998	GvR	1008	Python 1.5.2b1 | 
					
						
							| 
									
										
										
										
											1998-12-03 18:18:12 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |    18-Jan-1997	GvR	1007	string interning and other speedups | 
					
						
							| 
									
										
										
										
											1997-01-18 07:54:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-10-11 16:25:41 +00:00
										 |  |  |    11-Oct-1996	GvR	renamed Py_Ellipses to Py_Ellipsis :-( | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-07-30 16:41:02 +00:00
										 |  |  |    30-Jul-1996	GvR	Slice and ellipses syntax added | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    23-Jul-1996	GvR	For 1.4 -- better safe than sorry this time :-) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-01-12 00:49:39 +00:00
										 |  |  |    7-Nov-1995	GvR	Keyword arguments (should've been done at 1.3 :-( ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-12 11:45:45 +00:00
										 |  |  |    10-Jan-1995	GvR	Renamed globals to new naming scheme | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  |    9-Jan-1995	GvR	Initial version (incompatible with older API) | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  | #ifdef MS_WINDOWS
 | 
					
						
							| 
									
										
										
										
											1997-09-29 23:29:08 +00:00
										 |  |  | /* Special defines for Windows versions used to live here.  Things
 | 
					
						
							|  |  |  |    have changed, and the "Version" is now in a global string variable. | 
					
						
							|  |  |  |    Reason for this is that this for easier branding of a "custom DLL" | 
					
						
							|  |  |  |    without actually needing a recompile.  */ | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  | #endif /* MS_WINDOWS */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef Py_TRACE_REFS
 | 
					
						
							|  |  |  | /* When we are tracing reference counts, rename Py_InitModule4 so
 | 
					
						
							|  |  |  |    modules compiled with incompatible settings will generate a | 
					
						
							|  |  |  |    link-time error. */ | 
					
						
							|  |  |  | #define Py_InitModule4 Py_InitModule4TraceRefs
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(PyObject *) Py_InitModule4 Py_PROTO((char *, PyMethodDef *, | 
					
						
							| 
									
										
										
										
											1995-01-12 11:45:45 +00:00
										 |  |  | 					  char *, PyObject *, int)); | 
					
						
							|  |  |  | #define Py_InitModule(name, methods) \
 | 
					
						
							|  |  |  | 	Py_InitModule4(name, methods, (char *)NULL, (PyObject *)NULL, \ | 
					
						
							|  |  |  | 		       PYTHON_API_VERSION) | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-06-27 18:21:59 +00:00
										 |  |  | #define Py_InitModule3(name, methods, doc) \
 | 
					
						
							|  |  |  | 	Py_InitModule4(name, methods, doc, (PyObject *)NULL, \ | 
					
						
							|  |  |  | 		       PYTHON_API_VERSION) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-04 18:48:25 +00:00
										 |  |  | extern DL_IMPORT(char *) _Py_PackageContext; | 
					
						
							| 
									
										
										
										
											1997-11-19 18:51:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_MODSUPPORT_H */
 |