diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1995-02-24 22:53:16 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-02-24 22:53:16 (GMT) |
commit | 76efd8e7a193d5e17f0f607ec5a2756636f9a9a5 (patch) | |
tree | fbd1495cc56a17715fbf6e8d175bcc7503c6330c /Mac/Python | |
parent | 397c3fb4d7b0e3bca7471e2f3e166b59d769880f (diff) | |
download | cpython-76efd8e7a193d5e17f0f607ec5a2756636f9a9a5.zip cpython-76efd8e7a193d5e17f0f607ec5a2756636f9a9a5.tar.gz cpython-76efd8e7a193d5e17f0f607ec5a2756636f9a9a5.tar.bz2 |
MAde a few things more orthogonal and did some cleanups:
- 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.
Diffstat (limited to 'Mac/Python')
-rw-r--r-- | Mac/Python/macapplication.c | 35 | ||||
-rw-r--r-- | Mac/Python/macglue.c | 56 |
2 files changed, 67 insertions, 24 deletions
diff --git a/Mac/Python/macapplication.c b/Mac/Python/macapplication.c new file mode 100644 index 0000000..bac0620 --- /dev/null +++ b/Mac/Python/macapplication.c @@ -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(); +} diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c index cab94ce..7135f33 100644 --- a/Mac/Python/macglue.c +++ b/Mac/Python/macglue.c @@ -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); +} |