summaryrefslogtreecommitdiffstats
path: root/Modules/main.c
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2002-08-02 14:11:24 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2002-08-02 14:11:24 (GMT)
commit21ed16acbe0a8870f6833b7976f8b7e79452d21c (patch)
tree3c2459f9d7dcbd73d633cbac0af301099da288d4 /Modules/main.c
parent94416e55d35e121a908fec30115a091f707c99e9 (diff)
downloadcpython-21ed16acbe0a8870f6833b7976f8b7e79452d21c.zip
cpython-21ed16acbe0a8870f6833b7976f8b7e79452d21c.tar.gz
cpython-21ed16acbe0a8870f6833b7976f8b7e79452d21c.tar.bz2
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.
Diffstat (limited to 'Modules/main.c')
-rw-r--r--Modules/main.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/Modules/main.c b/Modules/main.c
index cebb17b..9e46717 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -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];