for Py_Main().
Thanks to Kalle Svensson and Skip Montanaro for the patches.
DL_IMPORT(int) Py_FdIsInteractive(FILE *, char *);
+/* Bootstrap */
+PyAPI_FUNC(int) Py_Main(int argc, char **argv);
+
/* In getpath.c */
PyAPI_FUNC(char *) Py_GetProgramFullPath(void);
PyAPI_FUNC(char *) Py_GetPrefix(void);
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_codecs(void)
{
Py_InitModule("_codecs", _codecs_functions);
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_curses_panel(void)
{
PyObject *m, *d, *v;
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_curses(void)
{
PyObject *m, *d, *v, *c_api_object;
{NULL, NULL}
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_locale(void)
{
PyObject *m, *d, *x;
"Implementation module for SSL socket operations. See the socket module\n\
for documentation.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_ssl(void)
{
PyObject *m, *d;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_weakref(void)
{
PyObject *m;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initarray(void)
{
PyObject *m;
{ 0, 0 }
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initaudioop(void)
{
PyObject *m, *d;
/* Initialization function for the module (*must* be called initbinascii) */
PyDoc_STRVAR(doc_binascii, "Conversion between binary data and ASCII");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initbinascii(void)
{
PyObject *m, *d, *x;
return 0;
}
-#ifndef DL_EXPORT /* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC /* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcPickle(void)
{
PyObject *m, *d, *di, *v, *k;
&Otype,
};
-#ifndef DL_EXPORT /* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC /* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcStringIO(void) {
PyObject *m, *d, *v;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcmath(void)
{
PyObject *m;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcrypt(void)
{
Py_InitModule("crypt", crypt_methods);
{ 0, 0 },
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initdbm(void) {
PyObject *m, *d, *s;
Py_XDECREF(v);
}
-DL_EXPORT(void)
+PyMODINIT_FUNC
initdl(void)
{
PyObject *m, *d, *x;
To map error codes to error messages, use the function os.strerror(),\n\
e.g. os.strerror(2) could return 'No such file or directory'.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initerrno(void)
{
PyObject *m, *d, *de;
return 0;
}
-DL_EXPORT(void)
+PyMODINIT_FUNC
initfcntl(void)
{
PyObject *m, *d;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initfl(void)
{
Py_InitModule("fl", forms_methods);
static void fpe_reset(Sigfunc *);
static PyObject *fpe_error;
-DL_EXPORT(void) initfpectl(void);
+PyMODINIT_FUNC initfpectl(void);
static PyObject *turnon_sigfpe (PyObject *self,PyObject *args);
static PyObject *turnoff_sigfpe (PyObject *self,PyObject *args);
}
}
-DL_EXPORT(void) initfpectl(void)
+PyMODINIT_FUNC initfpectl(void)
{
PyObject *m, *d;
m = Py_InitModule("fpectl", fpectl_methods);
#include "Python.h"
static PyObject *fpe_error;
-DL_EXPORT(void) initfpetest(void);
+PyMODINIT_FUNC initfpetest(void);
static PyObject *test(PyObject *self,PyObject *args);
static double db0(double);
static double overflow(double);
return a;
}
-DL_EXPORT(void) initfpetest(void)
+PyMODINIT_FUNC initfpetest(void)
{
PyObject *m, *d;
{ 0, 0 },
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initgdbm(void) {
PyObject *m, *d, *s;
complete membership information.)");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initgrp(void)
{
PyObject *m, *d;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initimageop(void)
{
PyObject *m, *d;
/* Main program */
-DL_EXPORT(int)
+int
Py_Main(int argc, char **argv)
{
int c;
"This module is always available. It provides access to the\n"
"mathematical functions defined by the C standard.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmath(void)
{
PyObject *m, *d, *v;
/* Initialize this module. */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmd5(void)
{
PyObject *m, *d;
/* Initialize this module. */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmpz(void)
{
PyObject *module;
/* Initialization function for the module (*must* be called initoperator) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initoperator(void)
{
/* Create the module and add the functions */
/* Initialization function for the module (*must* be called initpcre) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initpcre(void)
{
PyObject *m, *d;
{
PROCESS_INFORMATION piProcInfo;
STARTUPINFO siStartInfo;
+ DWORD dwProcessFlags = 0; /* no NEW_CONSOLE by default for Ctrl+C handling */
char *s1,*s2, *s3 = " /c ";
const char *szConsoleSpawn = "w9xpopen.exe";
int i;
s1,
s3,
cmdstring);
+ /* Not passing CREATE_NEW_CONSOLE has been known to
+ cause random failures on win9x. Specifically a
+ dialog:
+ "Your program accessed mem currently in use at xxx"
+ and a hopeful warning about the stability of your
+ system.
+ Cost is Ctrl+C wont kill children, but anyone
+ who cares can have a go!
+ */
+ dwProcessFlags |= CREATE_NEW_CONSOLE;
}
}
NULL,
NULL,
TRUE,
- 0, /* no new console so Ctrl+C kills child too */
+ dwProcessFlags,
NULL,
NULL,
&siStartInfo,
#define MODNAME "posix"
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
INITFUNC(void)
{
PyObject *m, *v;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initpwd(void)
{
PyObject *m;
#include "Python.h"
-extern DL_EXPORT(int) Py_Main(int, char **);
-
int
main(int argc, char **argv)
{
PyDoc_STRVAR(doc_module,
"Importing this module enables command line editing using GNU readline.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initreadline(void)
{
PyObject *m;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initregex(void)
{
PyObject *m, *d, *v;
/* Module initialization */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initresource(void)
{
PyObject *m, *v;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initrgbimg(void)
{
PyObject *m, *d;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initrotor(void)
{
Rotor_Type.ob_type = &PyType_Type;
#define insint(n,v) { PyModule_AddIntConstant(m,n,v); }
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsha(void)
{
PyObject *m;
A signal handler function is called with two arguments:\n\
the first is the signal number, the second is the interrupted stack frame.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsignal(void)
{
PyObject *m, *d, *x;
"Implementation module for socket operations. See the socket module\n\
for documentation.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_socket(void)
{
PyObject *m;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initstrop(void)
{
PyObject *m, *s;
/* Module initialization */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initstruct(void)
{
PyObject *m;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_symtable(void)
{
PyObject *m;
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsyslog(void)
{
PyObject *m;
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
PyInit_termios(void)
{
PyObject *m;
unlock it. A thread attempting to lock a lock that it has already locked\n\
will block until another thread unlocks it. Deadlocks may ensue.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initthread(void)
{
PyObject *m, *d;
strptime() -- parse string to time tuple according to format specification");
-DL_EXPORT(void)
+PyMODINIT_FUNC
inittime(void)
{
PyObject *m;
};
-DL_EXPORT(void) inittiming(void)
+PyMODINIT_FUNC inittiming(void)
{
(void)Py_InitModule("timing", timing_methods);
}
{NULL, NULL}
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxreadlines(void)
{
XReadlinesObject_Type.ob_type = &PyType_Type;
/* Initialization function for the module (*must* be called initxx) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxx(void)
{
PyObject *m;
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxxsubtype(void)
{
PyObject *m;
#include "Python.h"
-extern int Py_Main(int, char **);
-
int WINAPI WinMain(
HINSTANCE hInstance, /* handle to current instance */
HINSTANCE hPrevInstance, /* handle to previous instance */