]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
MAde a few things more orthogonal and did some cleanups:
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 24 Feb 1995 22:53:16 +0000 (22:53 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 24 Feb 1995 22:53:16 +0000 (22:53 +0000)
- Applications now have their (minimal) main prrogram in
  macapplication.c and the rest of the init code in macglue.c.
- A new define, USE_MAC_APPLET_SUPPORT, independent of
  USE_MAC_SHARED_LIB
- chdir to script directory now done in PyMac_InitApplication.

Mac/Modules/config.c
Mac/Python/macapplication.c [new file with mode: 0644]
Mac/Python/macglue.c

index 32313a72f02b9045c3b86bfeaaed0e30c8b0aaa9..1ce7f77f2a534f605cc391a05ee2da48457465f5 100644 (file)
@@ -29,9 +29,8 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #endif
 
 #ifdef macintosh
-/* The Macintosh main program is in macmain.c */
+/* The Macintosh main program is in either macapplet.c or macapplication.c */
 #define NO_MAIN
-char *fileargument;            /* So main() can tell us the program name */
 #endif
 
 #include <stdio.h>
@@ -42,7 +41,6 @@ char *fileargument;           /* So main() can tell us the program name */
 #include "osdefs.h"
 #include "intrcheck.h"
 
-char *PyMac_GetPythonDir();
 
 #ifndef NO_MAIN
 
@@ -168,12 +166,13 @@ getpythonpath()
        ** - Prepend the python home-directory (which is obtained from a Preferences
        **   resource)
        ** - Add :
-       ** - Chdir to where the source file (if any) lives
        */
        static char *pythonpath;
        char *curwd;
        char *p, *endp;
        int newlen;
+       extern char *PyMac_GetPythonDir();
+       extern char *PyMac_GetScriptPath();
        
        if ( pythonpath ) return pythonpath;
        curwd = PyMac_GetPythonDir();
@@ -205,14 +204,6 @@ getpythonpath()
                pythonpath[newlen] = '\0';
                p = endp + 1;
        }
-       if ( fileargument ) {
-               strcpy(curwd, fileargument);
-               endp = strrchr(curwd, ':');
-               if ( endp && endp > curwd ) {
-                       *endp = '\0';
-                       chdir(curwd);
-               }
-       }
        return pythonpath;
 #else /* !macintosh */
        char *path = getenv("PYTHONPATH");
@@ -346,13 +337,17 @@ struct {
        {"mactcp", initmactcp},
 #endif
        {"AE", initAE},
+#ifndef __MWERKS__
        {"Ctl", initCtl},
        {"Dlg", initDlg},
+#endif
        {"Evt", initEvt},
        {"Menu", initMenu},
+#ifndef __MWERKS__
        {"Qd", initQd},
        {"Snd", initSnd},
        {"Win", initWin},
+#endif
        {"Res", initRes},
 
 /* -- ADDMODULE MARKER 2 -- */
diff --git a/Mac/Python/macapplication.c b/Mac/Python/macapplication.c
new file mode 100644 (file)
index 0000000..bac0620
--- /dev/null
@@ -0,0 +1,35 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* Macintosh Applet Python main program */
+
+#ifdef __CFM68K__
+#pragma lib_export on
+#endif
+
+extern void PyMac_InitApplication();
+
+main() {
+       PyMac_InitApplication();
+}
index cab94cec6abbf0e6d906cfee441d2222f35b01ba..7135f3331a3391e327010c663703d9d71c29aa6b 100644 (file)
@@ -117,7 +117,6 @@ static int in_foreground;
 
 int PyMac_DoYieldEnabled = 1;  /* Don't do eventloop when false */
 
-
 /* Convert C to Pascal string. Returns pointer to static buffer. */
 unsigned char *
 Pstring(char *str)
@@ -787,26 +786,7 @@ PyMac_BuildEventRecord(EventRecord *e)
 }
 
 
-#ifndef USE_MAC_SHARED_LIBRARY
-
-/* For normal application */
-void
-main()
-{
-       int argc;
-       char **argv;
-       
-#ifdef __MWERKS__
-       SIOUXSettings.asktosaveonclose = 0;
-       SIOUXSettings.showstatusline = 0;
-       SIOUXSettings.tabspaces = 4;
-#endif
-       argc = PyMac_GetArgv(&argv);
-       Py_Main(argc, argv);
-}
-
-#else /* USE_MAC_SHARED_LIBRARY */
-
+#ifdef USE_MAC_APPLET_SUPPORT
 /* Applet support */
 
 /* Run a compiled Python Python script from 'PYC ' resource __main__ */
@@ -850,9 +830,7 @@ PyMac_InitApplet()
        char **argv;
        int err;
 
-#ifdef USE_MAC_SHARED_LIBRARY
        PyMac_AddLibResources();
-#endif
 #ifdef __MWERKS__
        SIOUXSettings.asktosaveonclose = 0;
        SIOUXSettings.showstatusline = 0;
@@ -873,4 +851,34 @@ PyMac_InitApplet()
        /* XXX Should we bother to Py_Exit(sts)? */
 }
 
-#endif /* USE_MAC_SHARED_LIBRARY */
+#endif /* USE_MAC_APPLET_SUPPORT */
+
+/* For normal application */
+void
+PyMac_InitApplication()
+{
+       int argc;
+       char **argv;
+       
+#ifdef USE_MAC_SHARED_LIBRARY
+       PyMac_AddLibResources();
+#endif
+#ifdef __MWERKS__
+       SIOUXSettings.asktosaveonclose = 0;
+       SIOUXSettings.showstatusline = 0;
+       SIOUXSettings.tabspaces = 4;
+#endif
+       argc = PyMac_GetArgv(&argv);
+       if ( argc > 1 ) {
+               /* We're running a script. Attempt to change current directory */
+               char curwd[256], *endp;
+               
+               strcpy(curwd, argv[1]);
+               endp = strrchr(curwd, ':');
+               if ( endp && endp > curwd ) {
+                       *endp = '\0';
+                       chdir(curwd);
+               }
+       }
+       Py_Main(argc, argv);
+}