summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1996-09-05 15:19:24 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1996-09-05 15:19:24 (GMT)
commitf12e7093d5307bd8ce1cb82f767ead5be5e88e5c (patch)
treeb50e86c653bb4c1169fd4e2c2b0778b64662f225
parentb9bf6e2ddec61365e1c2bbd1003cd6c7b7097e7a (diff)
downloadcpython-f12e7093d5307bd8ce1cb82f767ead5be5e88e5c.zip
cpython-f12e7093d5307bd8ce1cb82f767ead5be5e88e5c.tar.gz
cpython-f12e7093d5307bd8ce1cb82f767ead5be5e88e5c.tar.bz2
Check that our override pythonpath is actually coming from the
application, not from some system extension that happens to use the same resource id.
-rw-r--r--Mac/Python/macgetpath.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/Mac/Python/macgetpath.c b/Mac/Python/macgetpath.c
index 40dd6c1..0e3341d 100644
--- a/Mac/Python/macgetpath.c
+++ b/Mac/Python/macgetpath.c
@@ -210,6 +210,21 @@ char *dir;
Str255 pathitem;
int resource_id;
OSErr err;
+ Handle h;
+
+ /*
+ ** This is a bit tricky. We check here whether the current resource file
+ ** contains an override. This is to forestall us finding another STR# resource
+ ** with "our" id and using that for path initialization
+ */
+ SetResLoad(0);
+ if ( (h=Get1Resource('STR#', PYTHONPATHOVERRIDE_ID)) ) {
+ ReleaseResource(h);
+ resource_id = PYTHONPATHOVERRIDE_ID;
+ } else {
+ resource_id = PYTHONPATH_ID;
+ }
+ SetResLoad(1);
/*
** Remember old resource file and try to open preferences file
@@ -229,14 +244,7 @@ char *dir;
if( (rv = malloc(2)) == NULL )
goto out;
strcpy(rv, "\n");
- /*
- ** See whether there's an override.
- */
- GetIndString(pathitem, PYTHONPATHOVERRIDE_ID, 1);
- if ( pathitem[0] )
- resource_id = PYTHONPATHOVERRIDE_ID;
- else
- resource_id = PYTHONPATH_ID;
+
for(i=1; ; i++) {
GetIndString(pathitem, resource_id, i);
if( pathitem[0] == 0 )