equal
deleted
inserted
replaced
|
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 } |