- 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
This commit is contained in:
Jack Jansen 1997-05-23 15:35:14 +00:00
parent 570e4b7ad1
commit a39f1b0ce2
2 changed files with 59 additions and 8 deletions

View File

@ -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. */

View File

@ -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. */