summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Python/macimport.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/Mac/Python/macimport.c b/Mac/Python/macimport.c
index f5f4e20..627f828 100644
--- a/Mac/Python/macimport.c
+++ b/Mac/Python/macimport.c
@@ -48,6 +48,10 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#endif
#include <CodeFragments.h>
+#ifdef USE_GUSI
+#include "TFileSpec.h" /* for Path2FSSpec() */
+#endif
+
typedef void (*dl_funcptr)();
#define FUNCNAME_PATTERN "init%.200s"
@@ -100,7 +104,11 @@ findnamedresource(
UseResFile(PyMac_AppRefNum);
filerh = -1;
} else {
+#ifdef USE_GUSI
+ if ( Path2FSSpec(filename, &fss) != noErr ||
+#else
if ( FSMakeFSSpec(0, 0, Pstring(filename), &fss) != noErr ||
+#endif
FSpGetFInfo(&fss, &finfo) != noErr ) {
#ifdef INTERN_STRINGS
if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned )
@@ -296,7 +304,12 @@ char *filename;
UseResFile(PyMac_AppRefNum);
filerh = -1;
} else {
+#ifdef USE_GUSI
+ if ( (err=Path2FSSpec(filename, &fss)) != noErr ||
+ FSpGetFInfo(&fss, &finfo) != noErr )
+#else
if ( (err=FSMakeFSSpec(0, 0, Pstring(filename), &fss)) != noErr )
+#endif
goto error;
if ( (err=FSpGetFInfo(&fss, &finfo)) != noErr )
goto error;
@@ -401,6 +414,7 @@ PyMac_FindModuleExtension(char *buf, int *lenp, char *module)
unsigned char fnbuf[64];
int modnamelen = strlen(module);
FSSpec fss;
+ FInfo finfo;
short refnum;
long dirid;
@@ -419,8 +433,14 @@ PyMac_FindModuleExtension(char *buf, int *lenp, char *module)
#else
strcpy(buf+*lenp, _PyImport_Filetab[0].suffix);
#endif
+#ifdef USE_GUSI
+ if ( Path2FSSpec(buf, &fss) == noErr &&
+ FSpGetFInfo(&fss, &finfo) == noErr)
+ return _PyImport_Filetab;
+#else
if ( FSMakeFSSpec(0, 0, Pstring(buf), &fss) == noErr )
return _PyImport_Filetab;
+#endif
/*
** We cannot check for fnfErr (unfortunately), it can mean either that
** the file doesn't exist (fine, we try others) or the path leading to it.