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.
This commit is contained in:
parent
397c3fb4d7
commit
76efd8e7a1
|
@ -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 -- */
|
||||
|
|
|
@ -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();
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue