Kaydet (Commit) 5b3c9717 authored tarafından Jack Jansen's avatar Jack Jansen

The preference resource now has a version number

üst ac62569f
...@@ -108,7 +108,6 @@ Py_GetPath() ...@@ -108,7 +108,6 @@ Py_GetPath()
char *p, *endp; char *p, *endp;
int newlen; int newlen;
char *curwd; char *curwd;
staticforward char *PyMac_GetPythonDir();
#ifndef USE_BUILTIN_PATH #ifndef USE_BUILTIN_PATH
staticforward char *PyMac_GetPythonPath(); staticforward char *PyMac_GetPythonPath();
#endif #endif
...@@ -200,7 +199,7 @@ PyMac_OpenPrefFile() ...@@ -200,7 +199,7 @@ PyMac_OpenPrefFile()
/* /*
** Return the name of the Python directory ** Return the name of the Python directory
*/ */
static char * char *
PyMac_GetPythonDir() PyMac_GetPythonDir()
{ {
static int diditbefore = 0; static int diditbefore = 0;
...@@ -257,7 +256,7 @@ PyMac_GetPythonDir() ...@@ -257,7 +256,7 @@ PyMac_GetPythonDir()
} }
#ifndef USE_BUILTIN_PATH #ifndef USE_BUILTIN_PATH
static char * char *
PyMac_GetPythonPath() PyMac_GetPythonPath()
{ {
short oldrh, prefrh = -1; short oldrh, prefrh = -1;
...@@ -364,7 +363,8 @@ PyMac_PreferenceOptions(PyMac_PrefRecord *pr) ...@@ -364,7 +363,8 @@ PyMac_PreferenceOptions(PyMac_PrefRecord *pr)
short oldrh, prefrh = -1; short oldrh, prefrh = -1;
Handle handle; Handle handle;
int size; int size;
char *p; PyMac_PrefRecord *p;
int action;
oldrh = CurResFile(); oldrh = CurResFile();
...@@ -384,18 +384,23 @@ PyMac_PreferenceOptions(PyMac_PrefRecord *pr) ...@@ -384,18 +384,23 @@ PyMac_PreferenceOptions(PyMac_PrefRecord *pr)
} }
HLock(handle); HLock(handle);
size = GetHandleSize(handle); size = GetHandleSize(handle);
p = (char *)*handle; p = (PyMac_PrefRecord *)*handle;
if ( p->version == POPT_VERSION_CURRENT && size == sizeof(PyMac_PrefRecord) ) {
if ( size > POPT_INSPECT ) pr->inspect = p[POPT_INSPECT]; *pr = *p;
if ( size > POPT_VERBOSE ) pr->verbose = p[POPT_VERBOSE]; } else {
if ( size > POPT_SUPPRESS ) pr->suppress_print = p[POPT_SUPPRESS]; action = CautionAlert(BADPREFERENCES_ID, NULL);
if ( size > POPT_UNBUFFERED ) pr->unbuffered = p[POPT_UNBUFFERED]; if ( action == BADPREF_DELETE ) {
if ( size > POPT_DEBUGGING ) pr->debugging = p[POPT_DEBUGGING]; OSErr err;
if ( size > POPT_KEEPNORM ) pr->keep_normal = p[POPT_KEEPNORM];
if ( size > POPT_KEEPERR ) pr->keep_error = p[POPT_KEEPERR]; RemoveResource(handle);
if ( size > POPT_NOINTOPT ) pr->nointopt = p[POPT_NOINTOPT]; if ( (err=ResError()) ) printf("RemoveResource: %d\n", err);
if ( size > POPT_NOARGS ) pr->noargs = p[POPT_NOARGS]; if ( prefrh != -1 ) {
UpdateResFile(prefrh);
if ( (err=ResError()) ) printf("UpdateResFile: %d\n", err);
}
} else if ( action == BADPREF_QUIT )
exit(1);
}
HUnlock(handle); HUnlock(handle);
if ( prefrh != -1) CloseResFile(prefrh); if ( prefrh != -1) CloseResFile(prefrh);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment