diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1997-05-23 15:35:14 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1997-05-23 15:35:14 (GMT) |
commit | a39f1b0ce293652874cb70529cd3c92c919f3210 (patch) | |
tree | 6d65d42910a000ed660b6a06c9f1eea244eea642 | |
parent | 570e4b7ad12031745316c019247c577b5f143b22 (diff) | |
download | cpython-a39f1b0ce293652874cb70529cd3c92c919f3210.zip cpython-a39f1b0ce293652874cb70529cd3c92c919f3210.tar.gz cpython-a39f1b0ce293652874cb70529cd3c92c919f3210.tar.bz2 |
- Added Py_GetProgramFullPath
- Added PyMac_StopGUSISpin and have it called at exit time (fixes crash
when exiting with sockets open)
- Added PLstr... funcs needed by gusi: those provided by StdCLib are
broken under cfm68k
-rw-r--r-- | Mac/Python/macglue.c | 52 | ||||
-rw-r--r-- | Mac/Python/macmain.c | 15 |
2 files changed, 59 insertions, 8 deletions
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c index cc55d08..480b741 100644 --- a/Mac/Python/macglue.c +++ b/Mac/Python/macglue.c @@ -215,7 +215,57 @@ PyMac_SetGUSISpin() { GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin); } -#endif +/* Called at exit() time thru atexit(), to stop event processing */ +void +PyMac_StopGUSISpin() { + PyMac_ConsoleIsDead = 1; +} + +/* +** Replacement routines for the PLstr... functions so we don't need +** StdCLib. Moreover, that implementation is broken under cfm68k... +*/ +void +PLstrcpy(to, fr) + unsigned char *to, *fr; +{ + memcpy(to, fr, fr[0]+1); +} + +int +PLstrcmp(s1, s2) + unsigned char *s1, *s2; +{ + int res; + int l = s1[0] < s2[0] ? s1[0] : s2[0]; + + res = memcmp(s1+1, s2+1, l); + if ( res != 0 ) + return res; + + if ( s1 < s2 ) + return -1; + else if ( s1 > s2 ) + return 1; + else + return 0; +} + +unsigned char * +PLstrrchr(str, chr) + unsigned char *str; + unsigned char chr; +{ + unsigned char *ptr = 0; + unsigned char *p; + + for(p=str+1; p<str+str[0]; p++) + if ( *p == chr ) + ptr = p; + return ptr; +} + +#endif /* USE_GUSI */ /* Convert C to Pascal string. Returns pointer to static buffer. */ diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c index 9e8fbc5..811258a 100644 --- a/Mac/Python/macmain.c +++ b/Mac/Python/macmain.c @@ -209,6 +209,7 @@ init_common(int *argcp, char ***argvp, int embedded) GUSIDefaultSetup(); PyMac_SetGUSISpin(); PyMac_SetGUSIOptions(); + atexit(PyMac_StopGUSISpin); #endif #ifdef USE_SIOUX @@ -464,13 +465,6 @@ PyMac_Exit(status) } else SIOUXSettings.autocloseonquit = 1; -#ifdef USE_GUSI - /* - ** Workaround for Sioux/GUSI combo: we should not call - ** SiouxHandleOneEvent after the window is closed - */ - PyMac_ConsoleIsDead = 1; -#endif /* USE_GUSI */ #endif /* USE_SIOUX */ #ifdef THINK_C console_options.pause_atexit = keep; @@ -487,6 +481,13 @@ Py_GetProgramName() return orig_argv[0]; } +/* The same, but used differently */ +char * +Py_GetProgramFullPath() +{ + return Py_GetProgramName(); +} + /* Make the *original* argc/argv available to other modules. This is rare, but it is needed by the secureware extension. */ |