symbian-qemu-0.9.1-12/python-2.6.1/Python/frozenmain.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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 }