Mercurial > cpython-lru_cache-weakref
annotate Mac/Python/macgetpath.c @ 4523:4d0681f7cf6b legacy-trunk
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
much identical anyway).
Initialize PyMac_ApplicationPath and PyMac_ApplicationFSSpec to point
to the current application.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Sat, 09 Nov 1996 18:45:18 +0000 |
| parents | 0549e3428d57 |
| children | d6b292a33cfe |
| rev | line source |
|---|---|
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 #include "Python.h" |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 #include "osdefs.h" |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
3 #include "macglue.h" |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 #include "pythonresources.h" |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 /* Return the initial python search path. This is called once from |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 ** initsys() to initialize sys.path. |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 ** |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 ** If USE_BUILTIN_PATH is defined the path defined here is used |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 ** (after prepending the python home dir to each item). |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 ** If it is not defined the path is gotten from a resource in the |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 ** Preferences file. |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 ** |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 ** XXXX This code needs cleaning up. The routines here have moved |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 ** around quite a bit, and they're pretty messy for that reason. |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 #include <Files.h> |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 #include <Aliases.h> |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 #include <Folders.h> |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 #include <Resources.h> |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 #include <TextUtils.h> |
|
3057
24af8eab7b76
Fixed to work on 68K (could be yet another optimizer bug or something)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3054
diff
changeset
|
24 #include <Dialogs.h> |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
26 #ifdef USE_GUSI |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
27 #include <GUSI.h> |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
28 #endif |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
29 |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 #define PYTHONPATH "\ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 :\n\ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 :Lib\n\ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 :Lib:stdwin\n\ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 :Lib:test\n\ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 :Lib:mac" |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
37 static void |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
38 getpreffilefss(FSSpec *fssp) |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
39 { |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
40 static int diditbefore=0; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
41 static FSSpec fss; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
42 short prefdirRefNum; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
43 long prefdirDirID; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
44 Handle namehandle; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
45 |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
46 if ( !diditbefore ) { |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
47 if ( FindFolder(kOnSystemDisk, 'pref', kDontCreateFolder, &prefdirRefNum, |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
48 &prefdirDirID) != noErr ) { |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
49 /* Something wrong with preferences folder */ |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
50 (void)StopAlert(NOPREFDIR_ID, NULL); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
51 exit(1); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
52 } |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
53 |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
54 if ( (namehandle=GetNamedResource('STR ', PREFFILENAME_NAME)) == NULL ) { |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
55 (void)StopAlert(NOPREFNAME_ID, NULL); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
56 exit(1); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
57 } |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
58 |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
59 HLock(namehandle); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
60 (void)FSMakeFSSpec(prefdirRefNum, prefdirDirID, (unsigned char *)*namehandle, &fss); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
61 HUnlock(namehandle); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
62 ReleaseResource(namehandle); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
63 diditbefore = 1; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
64 } |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
65 *fssp = fss; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
66 } |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 char * |
|
3750
a22438e94fe9
Old names changed to Py_GetCopyright, etc.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3485
diff
changeset
|
69 Py_GetPath() |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 /* Modified by Jack to do something a bit more sensible: |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 ** - Prepend the python home-directory (which is obtained from a Preferences |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 ** resource) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 ** - Add : |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 static char *pythonpath; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 char *p, *endp; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 int newlen; |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
79 char *curwd; |
| 3422 | 80 staticforward char *PyMac_GetPythonDir(); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 #ifndef USE_BUILTIN_PATH |
| 3422 | 82 staticforward char *PyMac_GetPythonPath(); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 #endif |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 if ( pythonpath ) return pythonpath; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 #ifndef USE_BUILTIN_PATH |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
87 if ( pythonpath = PyMac_GetPythonPath() ) |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 return pythonpath; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 printf("Warning: No pythonpath resource found, using builtin default\n"); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 #endif |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
91 curwd = PyMac_GetPythonDir(); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 p = PYTHONPATH; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 endp = p; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 pythonpath = malloc(2); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
95 if ( pythonpath == NULL ) return PYTHONPATH; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 strcpy(pythonpath, ":"); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 while (*endp) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 endp = strchr(p, '\n'); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 if ( endp == NULL ) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 endp = p + strlen(p); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 newlen = strlen(pythonpath) + 1 + strlen(curwd) + (endp-p); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 pythonpath = realloc(pythonpath, newlen+1); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 if ( pythonpath == NULL ) return PYTHONPATH; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 strcat(pythonpath, "\n"); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 if ( *p == ':' ) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 p++; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 strcat(pythonpath, curwd); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 strncat(pythonpath, p, (endp-p)); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 newlen--; /* Ok, ok, we've allocated one byte too much */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 } else { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
111 /* We've allocated too much in this case */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
112 newlen -= strlen(curwd); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
113 pythonpath = realloc(pythonpath, newlen+1); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 if ( pythonpath == NULL ) return PYTHONPATH; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 strncat(pythonpath, p, (endp-p)); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
117 pythonpath[newlen] = '\0'; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
118 p = endp + 1; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 return pythonpath; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
123 |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
124 /* |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
125 ** Open/create the Python Preferences file, return the handle |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
126 */ |
| 3422 | 127 static short |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
128 PyMac_OpenPrefFile() |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
129 { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
130 AliasHandle handle; |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
131 FSSpec dirspec; |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
132 short prefrh; |
|
3057
24af8eab7b76
Fixed to work on 68K (could be yet another optimizer bug or something)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3054
diff
changeset
|
133 OSErr err; |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
134 |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
135 getpreffilefss(&dirspec); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
136 prefrh = FSpOpenResFile(&dirspec, fsRdWrShPerm); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
137 if ( prefrh < 0 ) { |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
138 #if 0 |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
139 action = CautionAlert(NOPREFFILE_ID, NULL); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
140 if ( action == NOPREFFILE_NO ) |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
141 exit(1); |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
142 #endif |
|
3410
022474ac2451
Changed MacOS creator code from PYTH to Pyth
Jack Jansen <jack.jansen@cwi.nl>
parents:
3057
diff
changeset
|
143 FSpCreateResFile(&dirspec, 'Pyth', 'pref', 0); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
144 prefrh = FSpOpenResFile(&dirspec, fsRdWrShPerm); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
145 if ( prefrh == -1 ) { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
146 /* This "cannot happen":-) */ |
|
3057
24af8eab7b76
Fixed to work on 68K (could be yet another optimizer bug or something)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3054
diff
changeset
|
147 printf("Cannot create preferences file, error %d\n", ResError()); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
148 exit(1); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
149 } |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
150 if ( (err=PyMac_init_process_location()) != 0 ) { |
|
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
151 printf("Cannot get application location, error %d\n", err); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
152 exit(1); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
153 } |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
154 dirspec = PyMac_ApplicationFSSpec; |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
155 dirspec.name[0] = 0; |
|
3057
24af8eab7b76
Fixed to work on 68K (could be yet another optimizer bug or something)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3054
diff
changeset
|
156 if ((err=NewAlias(NULL, &dirspec, &handle)) != 0 ) { |
|
24af8eab7b76
Fixed to work on 68K (could be yet another optimizer bug or something)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3054
diff
changeset
|
157 printf("Cannot make alias to application directory, error %d\n", err); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
158 exit(1); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
159 } |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
160 AddResource((Handle)handle, 'alis', PYTHONHOME_ID, "\p"); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
161 UpdateResFile(prefrh); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
162 |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
163 } else { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
164 UseResFile(prefrh); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
165 } |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
166 return prefrh; |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
167 } |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 /* |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 ** Return the name of the Python directory |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 */ |
| 3422 | 172 static char * |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
173 PyMac_GetPythonDir() |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 { |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
175 static int diditbefore = 0; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
176 static char name[256] = {':', '\0'}; |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
177 AliasHandle handle; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
178 FSSpec dirspec; |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
179 Boolean modified = 0; |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
180 short oldrh, prefrh = -1, homerh; |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
181 |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
182 if ( diditbefore ) |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
183 return name; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
184 |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
185 oldrh = CurResFile(); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
186 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
187 /* First look for an override in the application file */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
188 UseResFile(PyMac_AppRefNum); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
189 handle = (AliasHandle)Get1Resource('alis', PYTHONHOMEOVERRIDE_ID); |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
190 if ( handle != NULL ) { |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
191 homerh = PyMac_AppRefNum; |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
192 } else { |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
193 /* Try to open preferences file in the preferences folder. */ |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
194 prefrh = PyMac_OpenPrefFile(); |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
195 handle = (AliasHandle)Get1Resource('alis', PYTHONHOME_ID); |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
196 if ( handle == NULL ) { |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
197 (void)StopAlert(BADPREFFILE_ID, NULL); |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
198 diditbefore=1; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
199 return ":"; |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
200 } |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
201 homerh = prefrh; |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 } |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
203 /* It exists. Resolve it (possibly updating it) */ |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
204 if ( ResolveAlias(NULL, handle, &dirspec, &modified) != noErr ) { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
205 (void)StopAlert(BADPREFFILE_ID, NULL); |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
206 diditbefore=1; |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
207 return ":"; |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 } |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
209 if ( modified ) { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
210 ChangedResource((Handle)handle); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
211 UpdateResFile(homerh); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 } |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
213 if ( prefrh != -1 ) CloseResFile(prefrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
214 UseResFile(oldrh); |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
215 |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
216 if ( PyMac_GetFullPath(&dirspec, name) == 0 ) { |
|
3054
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
217 strcat(name, ":"); |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
218 } else { |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
219 /* If all fails, we return the current directory */ |
|
2cb1416010b3
Python will now attempt (again) to create at least a minimal
Jack Jansen <jack.jansen@cwi.nl>
parents:
2984
diff
changeset
|
220 printf("Python home dir exists but I cannot find the pathname!!\n"); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
221 name[0] = 0; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
222 (void)getwd(name); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
223 } |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
224 diditbefore = 1; |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 return name; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
227 |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
228 #ifndef USE_BUILTIN_PATH |
| 3422 | 229 static char * |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
230 PyMac_GetPythonPath() |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
232 short oldrh, prefrh = -1; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 char *rv; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
234 int i, newlen; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 Str255 pathitem; |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
236 int resource_id; |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
237 OSErr err; |
|
4205
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
238 Handle h; |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
239 |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
240 oldrh = CurResFile(); |
|
4205
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
241 /* |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
242 ** This is a bit tricky. We check here whether the application file |
|
4205
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
243 ** contains an override. This is to forestall us finding another STR# resource |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
244 ** with "our" id and using that for path initialization |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
245 */ |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
246 UseResFile(PyMac_AppRefNum); |
|
4205
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
247 SetResLoad(0); |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
248 if ( (h=Get1Resource('STR#', PYTHONPATHOVERRIDE_ID)) ) { |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
249 ReleaseResource(h); |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
250 resource_id = PYTHONPATHOVERRIDE_ID; |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
251 } else { |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
252 resource_id = PYTHONPATH_ID; |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
253 } |
|
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
254 SetResLoad(1); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
255 UseResFile(oldrh); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
256 |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
257 /* Open the preferences file only if there is no override */ |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
258 if ( resource_id != PYTHONPATHOVERRIDE_ID ) |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
259 prefrh = PyMac_OpenPrefFile(); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
260 /* At this point, we may or may not have the preferences file open, and it |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
261 ** may or may not contain a sys.path STR# resource. We don't care, if it doesn't |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
262 ** exist we use the one from the application (the default). |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
263 ** We put an initial '\n' in front of the path that we don't return to the caller |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
264 */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
265 if( (rv = malloc(2)) == NULL ) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
266 goto out; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
267 strcpy(rv, "\n"); |
|
4205
c7994008378d
Check that our override pythonpath is actually coming from the
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
268 |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 for(i=1; ; i++) { |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
270 GetIndString(pathitem, resource_id, i); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 if( pathitem[0] == 0 ) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
272 break; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
273 if ( pathitem[0] >= 9 && strncmp((char *)pathitem+1, "$(PYTHON)", 9) == 0 ) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
274 /* We have to put the directory in place */ |
|
4442
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
275 char *dir = PyMac_GetPythonDir(); |
|
0549e3428d57
- Get preference filename from a resource
Jack Jansen <jack.jansen@cwi.nl>
parents:
4238
diff
changeset
|
276 |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
277 newlen = strlen(rv) + strlen(dir) + (pathitem[0]-9) + 2; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
278 if( (rv=realloc(rv, newlen)) == NULL) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
279 goto out; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
280 strcat(rv, dir); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
281 /* Skip a colon at the beginning of the item */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
282 if ( pathitem[0] > 9 && pathitem[1+9] == ':' ) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
283 memcpy(rv+strlen(rv), pathitem+1+10, pathitem[0]-10); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
284 newlen--; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
285 } else { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
286 memcpy(rv+strlen(rv), pathitem+1+9, pathitem[0]-9); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
287 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
288 rv[newlen-2] = '\n'; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
289 rv[newlen-1] = 0; |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
290 } else if ( pathitem[0] >= 14 && strncmp((char *)pathitem+1, "$(APPLICATION)", 14) == 0 ) { |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
291 /* This is the application itself */ |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
292 |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
293 if ( (err=PyMac_init_process_location()) != 0 ) { |
|
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
294 printf("Cannot get application location, error %d\n", err); |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
295 exit(1); |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
296 } |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
297 |
|
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
298 newlen = strlen(rv) + strlen(PyMac_ApplicationPath) + 2; |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
299 if( (rv=realloc(rv, newlen)) == NULL) |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
300 goto out; |
|
4523
4d0681f7cf6b
Got rid of nfullpath in favor of PyMac_GetFullPath (which was pretty
Jack Jansen <jack.jansen@cwi.nl>
parents:
4442
diff
changeset
|
301 strcpy(rv+strlen(rv), PyMac_ApplicationPath); |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
302 rv[newlen-2] = '\n'; |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
303 rv[newlen-1] = 0; |
|
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
304 |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
305 } else { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
306 /* Use as-is */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
307 newlen = strlen(rv) + (pathitem[0]) + 2; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
308 if( (rv=realloc(rv, newlen)) == NULL) |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
309 goto out; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
310 memcpy(rv+strlen(rv), pathitem+1, pathitem[0]); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
311 rv[newlen-2] = '\n'; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
312 rv[newlen-1] = 0; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
313 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
314 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
315 if( strlen(rv) == 1) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
316 free(rv); |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
317 rv = NULL; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
318 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
319 if ( rv ) { |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
320 rv[strlen(rv)-1] = 0; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
321 rv++; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
322 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
323 out: |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
324 if ( prefrh != -1) CloseResFile(prefrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
325 UseResFile(oldrh); |
|
2984
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
326 return rv; |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
327 } |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
328 #endif /* !USE_BUILTIN_PATH */ |
|
4c1d80953950
macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
329 |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
330 void |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
331 PyMac_PreferenceOptions(PyMac_PrefRecord *pr) |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
332 { |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
333 short oldrh, prefrh = -1; |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
334 Handle handle; |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
335 int size; |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
336 char *p; |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
337 |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
338 |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
339 oldrh = CurResFile(); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
340 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
341 /* Attempt to load overrides from application */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
342 UseResFile(PyMac_AppRefNum); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
343 handle = Get1Resource('Popt', PYTHONOPTIONSOVERRIDE_ID); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
344 UseResFile(oldrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
345 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
346 /* Otherwise get options from prefs file or any other open resource file */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
347 if ( handle == NULL ) { |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
348 prefrh = PyMac_OpenPrefFile(); |
|
3485
61f19a7b1ff1
Added support for override preferences
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
349 handle = GetResource('Popt', PYTHONOPTIONS_ID); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
350 } |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
351 if ( handle == NULL ) { |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
352 return; |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
353 } |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
354 HLock(handle); |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
355 size = GetHandleSize(handle); |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
356 p = (char *)*handle; |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
357 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
358 if ( size > POPT_INSPECT ) pr->inspect = p[POPT_INSPECT]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
359 if ( size > POPT_VERBOSE ) pr->verbose = p[POPT_VERBOSE]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
360 if ( size > POPT_SUPPRESS ) pr->suppress_print = p[POPT_SUPPRESS]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
361 if ( size > POPT_UNBUFFERED ) pr->unbuffered = p[POPT_UNBUFFERED]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
362 if ( size > POPT_DEBUGGING ) pr->debugging = p[POPT_DEBUGGING]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
363 if ( size > POPT_KEEPNORM ) pr->keep_normal = p[POPT_KEEPNORM]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
364 if ( size > POPT_KEEPERR ) pr->keep_error = p[POPT_KEEPERR]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
365 if ( size > POPT_NOINTOPT ) pr->nointopt = p[POPT_NOINTOPT]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
366 if ( size > POPT_NOARGS ) pr->noargs = p[POPT_NOARGS]; |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
367 |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
368 HUnlock(handle); |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
369 |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
370 if ( prefrh != -1) CloseResFile(prefrh); |
|
3411
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
371 UseResFile(oldrh); |
|
14991c4331df
Store default startup options in preference file or
Jack Jansen <jack.jansen@cwi.nl>
parents:
3410
diff
changeset
|
372 } |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
373 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
374 #ifdef USE_GUSI |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
375 void |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
376 PyMac_SetGUSIOptions() |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
377 { |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
378 Handle h; |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
379 short oldrh, prefrh = -1; |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
380 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
381 oldrh = CurResFile(); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
382 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
383 /* Try override from the application resource fork */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
384 UseResFile(PyMac_AppRefNum); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
385 h = Get1Resource('GU\267I', GUSIOPTIONSOVERRIDE_ID); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
386 UseResFile(oldrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
387 |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
388 /* If that didn't work try nonoverride from anywhere */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
389 if ( h == NULL ) { |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
390 prefrh = PyMac_OpenPrefFile(); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
391 h = GetResource('GU\267I', GUSIOPTIONS_ID); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
392 } |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
393 if ( h ) GUSILoadConfiguration(h); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
394 if ( prefrh != -1) CloseResFile(prefrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
395 UseResFile(oldrh); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
396 } |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4205
diff
changeset
|
397 #endif /* USE_GUSI */ |
