mirror of
https://github.com/python/cpython.git
synced 2025-07-19 17:25:54 +00:00
Added one call to Py_Main(), for OSX framework builds only, that will get the
actual script to run in case we are running from an applet. If we are indeed running an applet we skip the normal option processing leaving it all to the applet code. This allows us to get use the normal python binary in the Python.app bundle, giving us all the normal command line options through PythonLauncher while still allowing Python.app to be used as the template for building applets. Consequently, pythonforbundle is gone, and Mac/Python/macmain.c isn't used on OSX anymore.
This commit is contained in:
parent
94416e55d3
commit
21ed16acbe
5 changed files with 132 additions and 45 deletions
|
@ -135,6 +135,22 @@ Py_Main(int argc, char **argv)
|
|||
|
||||
PySys_ResetWarnOptions();
|
||||
|
||||
#if defined(WITH_NEXT_FRAMEWORK)
|
||||
/* If we are running from a framework it could be that we are actually
|
||||
** the main program for an applet. If so, the next call will return the
|
||||
** filename that we are supposed to run.
|
||||
*/
|
||||
filename = PyMac_GetAppletScriptFile();
|
||||
if (filename != NULL) {
|
||||
if ((fp = fopen(filename, "r")) == NULL) {
|
||||
fprintf(stderr, "%s: can't open file '%s'\n",
|
||||
argv[0], filename);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
/* Skip option-processing if we are an applet */
|
||||
if (filename == NULL)
|
||||
#endif
|
||||
while ((c = _PyOS_GetOpt(argc, argv, PROGRAM_OPTS)) != EOF) {
|
||||
if (c == 'c') {
|
||||
/* -c is the last option; following arguments
|
||||
|
@ -261,7 +277,7 @@ Py_Main(int argc, char **argv)
|
|||
(p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')
|
||||
unbuffered = 1;
|
||||
|
||||
if (command == NULL && _PyOS_optind < argc &&
|
||||
if (command == NULL && filename == NULL && _PyOS_optind < argc &&
|
||||
strcmp(argv[_PyOS_optind], "-") != 0)
|
||||
{
|
||||
filename = argv[_PyOS_optind];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue