Mercurial > cpython-lru_cache-weakref
annotate Python/frozenmain.c @ 58973:db86bf39ccaa legacy-trunk
Issue 7970: When email.Parser.Parser parses a MIME message of type
message/rfc822 it turns it into an object whose body consists of
a list containing a single Message object. HeaderParser, on the
other hand, just copies the body as a string. Generator.flatten
has a special handler for the message mime type that expected the
body to be the one item list. This fails if the message was parsed
by HeaderParser. So we now check to see if the body is a string
first, and if so just we just emit it.
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Sun, 21 Feb 2010 04:23:00 +0000 |
| parents | 8142f8d668a0 |
| children | fd25030223b0 22a74eaf6b22 |
| rev | line source |
|---|---|
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 |
|
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 /* Python interpreter main program for frozen scripts */ |
|
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 |
| 2624 | 4 #include "Python.h" |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 |
|
24071
8142f8d668a0
Patch #569753: Remove support for WIN16.
Martin v. Löwis <martin@v.loewis.de>
parents:
21712
diff
changeset
|
6 #ifdef MS_WINDOWS |
|
13663
29da35543833
ANSIfy as many declarations as possible.
Thomas Wouters <thomas@python.org>
parents:
13658
diff
changeset
|
7 extern void PyWinFreeze_ExeInit(void); |
|
29da35543833
ANSIfy as many declarations as possible.
Thomas Wouters <thomas@python.org>
parents:
13658
diff
changeset
|
8 extern void PyWinFreeze_ExeTerm(void); |
|
29da35543833
ANSIfy as many declarations as possible.
Thomas Wouters <thomas@python.org>
parents:
13658
diff
changeset
|
9 extern int PyInitFrozenExtensions(void); |
|
7846
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
10 #endif |
|
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
11 |
|
2892
33b154b6c61b
moved stuff around to resemble main.c
Guido van Rossum <guido@python.org>
parents:
2624
diff
changeset
|
12 /* Main program */ |
|
33b154b6c61b
moved stuff around to resemble main.c
Guido van Rossum <guido@python.org>
parents:
2624
diff
changeset
|
13 |
|
33b154b6c61b
moved stuff around to resemble main.c
Guido van Rossum <guido@python.org>
parents:
2624
diff
changeset
|
14 int |
|
13658
f79434ee41fa
Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents:
13256
diff
changeset
|
15 Py_FrozenMain(int argc, char **argv) |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 { |
|
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 char *p; |
|
1396
4a286b300b5e
Must initialize 'inspect' flag
Guido van Rossum <guido@python.org>
parents:
1319
diff
changeset
|
18 int n, sts; |
|
4a286b300b5e
Must initialize 'inspect' flag
Guido van Rossum <guido@python.org>
parents:
1319
diff
changeset
|
19 int inspect = 0; |
|
1848
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
20 int unbuffered = 0; |
|
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
21 |
|
7210
bccdeca81669
Set Py_FrozenFlag, to suppress error messages from getpath.c.
Guido van Rossum <guido@python.org>
parents:
7116
diff
changeset
|
22 Py_FrozenFlag = 1; /* Suppress errors from getpath.c */ |
|
bccdeca81669
Set Py_FrozenFlag, to suppress error messages from getpath.c.
Guido van Rossum <guido@python.org>
parents:
7116
diff
changeset
|
23 |
|
18808
a8b1acc7a21f
Add -E command line switch (ignore environment variables like PYTHONHOME
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
14375
diff
changeset
|
24 if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0') |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
25 inspect = 1; |
|
18808
a8b1acc7a21f
Add -E command line switch (ignore environment variables like PYTHONHOME
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
14375
diff
changeset
|
26 if ((p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0') |
|
1848
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
27 unbuffered = 1; |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
28 |
|
1848
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
29 if (unbuffered) { |
|
6723
c3f85bcb045a
Make stdin unbuffered too, when PYTHONUNBUFFERED is specified.
Guido van Rossum <guido@python.org>
parents:
6055
diff
changeset
|
30 setbuf(stdin, (char *)NULL); |
|
1848
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
31 setbuf(stdout, (char *)NULL); |
|
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
32 setbuf(stderr, (char *)NULL); |
|
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
33 } |
|
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
34 |
|
24071
8142f8d668a0
Patch #569753: Remove support for WIN16.
Martin v. Löwis <martin@v.loewis.de>
parents:
21712
diff
changeset
|
35 #ifdef MS_WINDOWS |
|
9741
05fb4d966c73
Call PyInitFrozenExtensions() as requested by Mark Hammond (his patch).
Guido van Rossum <guido@python.org>
parents:
8822
diff
changeset
|
36 PyInitFrozenExtensions(); |
|
24071
8142f8d668a0
Patch #569753: Remove support for WIN16.
Martin v. Löwis <martin@v.loewis.de>
parents:
21712
diff
changeset
|
37 #endif /* MS_WINDOWS */ |
|
5852
4a4778e61c14
Tracking changes to Py_Main():
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
38 Py_SetProgramName(argv[0]); |
|
4a4778e61c14
Tracking changes to Py_Main():
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
39 Py_Initialize(); |
|
24071
8142f8d668a0
Patch #569753: Remove support for WIN16.
Martin v. Löwis <martin@v.loewis.de>
parents:
21712
diff
changeset
|
40 #ifdef MS_WINDOWS |
|
7846
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
41 PyWinFreeze_ExeInit(); |
|
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
42 #endif |
|
5852
4a4778e61c14
Tracking changes to Py_Main():
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
43 |
| 2624 | 44 if (Py_VerboseFlag) |
|
1848
b724599401ff
Merge back to main trunk
Guido van Rossum <guido@python.org>
parents:
1396
diff
changeset
|
45 fprintf(stderr, "Python %s\n%s\n", |
|
3621
f158edccc72c
grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents:
2892
diff
changeset
|
46 Py_GetVersion(), Py_GetCopyright()); |
|
5852
4a4778e61c14
Tracking changes to Py_Main():
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
47 |
| 2624 | 48 PySys_SetArgv(argc, argv); |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
49 |
| 2624 | 50 n = PyImport_ImportFrozenModule("__main__"); |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 if (n == 0) |
| 2624 | 52 Py_FatalError("__main__ not frozen"); |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 if (n < 0) { |
| 2624 | 54 PyErr_Print(); |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
55 sts = 1; |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 } |
|
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 else |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
58 sts = 0; |
|
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
59 |
|
1319
cd397266dc1c
* Makefile: added all: and default: targets.
Guido van Rossum <guido@python.org>
parents:
1318
diff
changeset
|
60 if (inspect && isatty((int)fileno(stdin))) |
| 2624 | 61 sts = PyRun_AnyFile(stdin, "<stdin>") != 0; |
|
1318
92e6a8cf14be
* pythonmain.c: -k option, usage message, more environment flags.
Guido van Rossum <guido@python.org>
parents:
1270
diff
changeset
|
62 |
|
24071
8142f8d668a0
Patch #569753: Remove support for WIN16.
Martin v. Löwis <martin@v.loewis.de>
parents:
21712
diff
changeset
|
63 #ifdef MS_WINDOWS |
|
7846
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
64 PyWinFreeze_ExeTerm(); |
|
6c6a48bc5817
Make calls into ../PC/frozen_dllmain.c on MS_WIN32.
Guido van Rossum <guido@python.org>
parents:
7210
diff
changeset
|
65 #endif |
| 6055 | 66 Py_Finalize(); |
| 67 return sts; | |
|
1270
14369a5e6167
Support for frozen scripts; added -i option.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 } |
