summaryrefslogtreecommitdiffstats
path: root/Modules/python.c
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2014-07-25 11:52:14 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2014-07-25 11:52:14 (GMT)
commit973fe0ba7adb081b81f319b924f9bbb50b2b1345 (patch)
tree5b386540c29cbf34abbceb101c13377ae3760c71 /Modules/python.c
parentd6766ae434fd09130863af913a8193641e51b91c (diff)
downloadcpython-973fe0ba7adb081b81f319b924f9bbb50b2b1345.zip
cpython-973fe0ba7adb081b81f319b924f9bbb50b2b1345.tar.gz
cpython-973fe0ba7adb081b81f319b924f9bbb50b2b1345.tar.bz2
Issue #18093: Factor out the programs that embed the runtime
Diffstat (limited to 'Modules/python.c')
-rw-r--r--Modules/python.c77
1 files changed, 0 insertions, 77 deletions
diff --git a/Modules/python.c b/Modules/python.c
deleted file mode 100644
index 9811c01..0000000
--- a/Modules/python.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Minimal main program -- everything is loaded from the library */
-
-#include "Python.h"
-#include <locale.h>
-
-#ifdef __FreeBSD__
-#include <floatingpoint.h>
-#endif
-
-#ifdef MS_WINDOWS
-int
-wmain(int argc, wchar_t **argv)
-{
- return Py_Main(argc, argv);
-}
-#else
-
-int
-main(int argc, char **argv)
-{
- wchar_t **argv_copy;
- /* We need a second copy, as Python might modify the first one. */
- wchar_t **argv_copy2;
- int i, res;
- char *oldloc;
-#ifdef __FreeBSD__
- fp_except_t m;
-#endif
-
- argv_copy = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
- argv_copy2 = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
- if (!argv_copy || !argv_copy2) {
- fprintf(stderr, "out of memory\n");
- return 1;
- }
-
- /* 754 requires that FP exceptions run in "no stop" mode by default,
- * and until C vendors implement C99's ways to control FP exceptions,
- * Python requires non-stop mode. Alas, some platforms enable FP
- * exceptions by default. Here we disable them.
- */
-#ifdef __FreeBSD__
- m = fpgetmask();
- fpsetmask(m & ~FP_X_OFL);
-#endif
-
- oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL));
- if (!oldloc) {
- fprintf(stderr, "out of memory\n");
- return 1;
- }
-
- setlocale(LC_ALL, "");
- for (i = 0; i < argc; i++) {
- argv_copy[i] = _Py_char2wchar(argv[i], NULL);
- if (!argv_copy[i]) {
- PyMem_RawFree(oldloc);
- fprintf(stderr, "Fatal Python error: "
- "unable to decode the command line argument #%i\n",
- i + 1);
- return 1;
- }
- argv_copy2[i] = argv_copy[i];
- }
- argv_copy2[argc] = argv_copy[argc] = NULL;
-
- setlocale(LC_ALL, oldloc);
- PyMem_RawFree(oldloc);
- res = Py_Main(argc, argv_copy);
- for (i = 0; i < argc; i++) {
- PyMem_RawFree(argv_copy2[i]);
- }
- PyMem_RawFree(argv_copy);
- PyMem_RawFree(argv_copy2);
- return res;
-}
-#endif