Line | |
---|
1 |
|
---|
2 | /* Python interpreter main program for frozen scripts */
|
---|
3 |
|
---|
4 | #include "Python.h"
|
---|
5 |
|
---|
6 | #ifdef MS_WINDOWS
|
---|
7 | extern void PyWinFreeze_ExeInit(void);
|
---|
8 | extern void PyWinFreeze_ExeTerm(void);
|
---|
9 | extern int PyInitFrozenExtensions(void);
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | /* Main program */
|
---|
13 |
|
---|
14 | int
|
---|
15 | Py_FrozenMain(int argc, char **argv)
|
---|
16 | {
|
---|
17 | char *p;
|
---|
18 | int n, sts;
|
---|
19 | int inspect = 0;
|
---|
20 | int unbuffered = 0;
|
---|
21 |
|
---|
22 | Py_FrozenFlag = 1; /* Suppress errors from getpath.c */
|
---|
23 |
|
---|
24 | if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
|
---|
25 | inspect = 1;
|
---|
26 | if ((p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')
|
---|
27 | unbuffered = 1;
|
---|
28 |
|
---|
29 | if (unbuffered) {
|
---|
30 | setbuf(stdin, (char *)NULL);
|
---|
31 | setbuf(stdout, (char *)NULL);
|
---|
32 | setbuf(stderr, (char *)NULL);
|
---|
33 | }
|
---|
34 |
|
---|
35 | #ifdef MS_WINDOWS
|
---|
36 | PyInitFrozenExtensions();
|
---|
37 | #endif /* MS_WINDOWS */
|
---|
38 | Py_SetProgramName(argv[0]);
|
---|
39 | Py_Initialize();
|
---|
40 | #ifdef MS_WINDOWS
|
---|
41 | PyWinFreeze_ExeInit();
|
---|
42 | #endif
|
---|
43 |
|
---|
44 | if (Py_VerboseFlag)
|
---|
45 | fprintf(stderr, "Python %s\n%s\n",
|
---|
46 | Py_GetVersion(), Py_GetCopyright());
|
---|
47 |
|
---|
48 | PySys_SetArgv(argc, argv);
|
---|
49 |
|
---|
50 | n = PyImport_ImportFrozenModule("__main__");
|
---|
51 | if (n == 0)
|
---|
52 | Py_FatalError("__main__ not frozen");
|
---|
53 | if (n < 0) {
|
---|
54 | PyErr_Print();
|
---|
55 | sts = 1;
|
---|
56 | }
|
---|
57 | else
|
---|
58 | sts = 0;
|
---|
59 |
|
---|
60 | if (inspect && isatty((int)fileno(stdin)))
|
---|
61 | sts = PyRun_AnyFile(stdin, "<stdin>") != 0;
|
---|
62 |
|
---|
63 | #ifdef MS_WINDOWS
|
---|
64 | PyWinFreeze_ExeTerm();
|
---|
65 | #endif
|
---|
66 | Py_Finalize();
|
---|
67 | return sts;
|
---|
68 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.