Don't add the library file to the resource file chain if it is the

same as the application file (Just).
This commit is contained in:
Jack Jansen 1998-07-31 09:37:02 +00:00
parent 7e1fb7c92d
commit 2e6445caa6
1 changed files with 18 additions and 1 deletions

View File

@ -82,6 +82,23 @@ __initialize_with_resources(CFragInitBlockPtr data)
return noErr;
}
/*
** compare two FSSpecs, return true if equal, false if different
** XXX where could this function live? (jvr)
*/
static int
FSpCompare(FSSpec *fss1, FSSpec *fss2) {
if (fss1->vRefNum != fss2->vRefNum)
return 0;
if (fss1->parID != fss2->parID)
return 0;
return !PLstrcmp(fss1->name, fss2->name);
}
/* XXX can't include "macglue.h" somehow (jvr) */
extern FSSpec PyMac_ApplicationFSSpec; /* Application location (from macargv.c) */
/*
** Insert the library resources into the search path. Put them after
** the resources from the application (which we assume is the current
@ -90,7 +107,7 @@ __initialize_with_resources(CFragInitBlockPtr data)
void
PyMac_AddLibResources()
{
if ( !library_fss_valid )
if ( !library_fss_valid || FSpCompare(&library_fss, &PyMac_ApplicationFSSpec))
return;
(void)FSpOpenResFile(&library_fss, fsRdPerm);
}