Added hooks to support importing pyc code from a resource on the mac.
diff --git a/Python/import.c b/Python/import.c
index 35c0d9d..05d2c55 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -39,6 +39,9 @@
 #include "eval.h"
 #include "osdefs.h"
 #include "importdl.h"
+#ifdef macintosh
+#include "macglue.h"
+#endif
 
 extern int verbose; /* Defined in pythonrun.c */
 
@@ -135,10 +138,10 @@
 /* Execute a code object in a module and return the module object
    WITH INCREMENTED REFERENCE COUNT */
 
-static object *
+object *
 exec_code_module(name, co)
 	char *name;
-	codeobject *co;
+	object *co;
 {
 	object *m, *d, *v;
 
@@ -269,13 +272,12 @@
 	if (verbose)
 		fprintf(stderr, "import %s # precompiled from %s\n",
 			name, cpathname);
-	m = exec_code_module(name, co);
+	m = exec_code_module(name, (object *)co);
 	DECREF(co);
 
 	return m;
 }
 
-
 /* Parse a source file and return the corresponding code object */
 
 static codeobject *
@@ -379,7 +381,7 @@
 				name, pathname);
 		write_compiled_module(co, cpathname, mtime);
 	}
-	m = exec_code_module(name, co);
+	m = exec_code_module(name, (object *)co);
 	DECREF(co);
 
 	return m;
@@ -422,6 +424,13 @@
 		strcpy(buf, getstringvalue(v));
 		if (strlen(buf) != len)
 			continue; /* v contains '\0' */
+#ifdef macintosh
+		if ( PyMac_FindResourceModule(name, buf) ) {
+			static struct filedescr resfiledescr = { "", "", PY_RESOURCE};
+			
+			return &resfiledescr;
+		}
+#endif
 		if (len > 0 && buf[len-1] != SEP)
 			buf[len++] = SEP;
 		strcpy(buf+len, name);
@@ -479,13 +488,20 @@
 		m = load_dynamic_module(name, buf);
 		break;
 
+#ifdef macintosh
+	case PY_RESOURCE:
+		m = PyMac_LoadResourceModule(name, buf);
+		break;
+#endif
+
 	default:
 		err_setstr(SystemError,
 			   "find_module returned unexpected result");
 		m = NULL;
 
 	}
-	fclose(fp);
+	if ( fp )
+		fclose(fp);
 
 	return m;
 }
@@ -555,7 +571,7 @@
 		err_setstr(SystemError, "frozen object is not a code object");
 		return -1;
 	}
-	m = exec_code_module(name, (codeobject *)co);
+	m = exec_code_module(name, co);
 	DECREF(co);
 	if (m == NULL)
 		return -1;
@@ -874,6 +890,23 @@
 	return m;
 }
 
+#ifdef macintosh
+static object *
+imp_load_resource(self, args)
+	object *self;
+	object *args;
+{
+	char *name;
+	char *pathname;
+	object *m;
+
+	if (!newgetargs(args, "ss", &name, &pathname))
+		return NULL;
+	m = PyMac_LoadResourceModule(name, pathname);
+	return m;
+}
+#endif /* macintosh */
+
 static object *
 imp_new_module(self, args)
 	object *self;
@@ -897,6 +930,9 @@
 	{"load_dynamic",	imp_load_dynamic,	1},
 	{"load_source",		imp_load_source,	1},
 	{"new_module",		imp_new_module,		1},
+#ifdef macintosh
+	{"load_resource",	imp_load_resource,	1},
+#endif
 	{NULL,			NULL}		/* sentinel */
 };