blob: 7a38541d27d6454ee1838076c575bbe926294b88 [file] [log] [blame]
Guido van Rossuma3309961993-07-28 09:05:47 +00001#ifndef Py_MODSUPPORT_H
2#define Py_MODSUPPORT_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Guido van Rossumf70e43a1991-02-19 12:39:46 +00007/***********************************************************
Guido van Rossum5799b521995-01-04 19:06:22 +00008Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
9The Netherlands.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000010
11 All Rights Reserved
12
13Permission to use, copy, modify, and distribute this software and its
14documentation for any purpose and without fee is hereby granted,
15provided that the above copyright notice appear in all copies and that
16both that copyright notice and this permission notice appear in
17supporting documentation, and that the names of Stichting Mathematisch
18Centrum or CWI not be used in advertising or publicity pertaining to
19distribution of the software without specific, written prior permission.
20
21STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
22THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
23FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
24FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
25WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
26ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
27OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
28
29******************************************************************/
30
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000031/* Module support interface */
32
Guido van Rossumb6775db1994-08-01 11:34:53 +000033#ifdef HAVE_STDARG_PROTOTYPES
34
35#include <stdarg.h>
36
Guido van Rossumcaa63801995-01-12 11:45:45 +000037extern int PyArg_Parse Py_PROTO((PyObject *, char *, ...));
38extern int PyArg_ParseTuple Py_PROTO((PyObject *, char *, ...));
39extern PyObject *Py_BuildValue Py_PROTO((char *, ...));
Guido van Rossumb6775db1994-08-01 11:34:53 +000040
41#else
42
43#include <varargs.h>
44
45/* Better to have no prototypes at all for varargs functions in this case */
Guido van Rossumcaa63801995-01-12 11:45:45 +000046extern int PyArg_Parse();
47extern int PyArg_ParseTuple();
48extern PyObject *Py_BuildValue();
Guido van Rossumb6775db1994-08-01 11:34:53 +000049
Guido van Rossume5372401993-03-16 12:15:04 +000050#endif
51
Guido van Rossumcaa63801995-01-12 11:45:45 +000052extern int PyArg_VaParse Py_PROTO((PyObject *, char *, va_list));
53extern PyObject *Py_VaBuildValue Py_PROTO((char *, va_list));
Guido van Rossume5372401993-03-16 12:15:04 +000054
Guido van Rossumcaa63801995-01-12 11:45:45 +000055#define PYTHON_API_VERSION 1002
Guido van Rossum970a0a21995-01-09 17:47:20 +000056/* The API version is maintained (independently from the Python version)
57 so we can detect mismatches between the interpreter and dynamically
58 loaded modules.
59
60 Please add a line or two to the top of this log for each API
61 version change:
62
Guido van Rossumcaa63801995-01-12 11:45:45 +000063 10-Jan-1995 GvR Renamed globals to new naming scheme
64
Guido van Rossum970a0a21995-01-09 17:47:20 +000065 9-Jan-1995 GvR Initial version (incompatible with older API)
66*/
67
Guido van Rossumcaa63801995-01-12 11:45:45 +000068extern PyObject *Py_InitModule4 Py_PROTO((char *, PyMethodDef *,
69 char *, PyObject *, int));
70#define Py_InitModule(name, methods) \
71 Py_InitModule4(name, methods, (char *)NULL, (PyObject *)NULL, \
72 PYTHON_API_VERSION)
Guido van Rossuma3309961993-07-28 09:05:47 +000073
74#ifdef __cplusplus
75}
76#endif
77#endif /* !Py_MODSUPPORT_H */