annotate Mac/Python/macgetpath.c @ 2985:0d7100ffb61a legacy-trunk

This is completely different from the old mainmain (which wasn't used anymore) and is the new main program for MacPython. Built from bits and pieces of config.c, macglue.c and pythonmain.c.
author Jack Jansen <jack.jansen@cwi.nl>
date Mon, 14 Aug 1995 12:33:20 +0000
parents 4c1d80953950
children 2cb1416010b3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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"
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3
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>
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 #define PYTHONPATH "\
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 :\n\
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 :Lib\n\
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 :Lib:stdwin\n\
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 :Lib:test\n\
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 :Lib:mac"
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 char *
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 getpythonpath()
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36 /* 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
37 ** - 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
38 ** resource)
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 ** - Add :
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40 */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 static char *pythonpath;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 char *curwd;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43 char *p, *endp;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 int newlen;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45 extern char *PyMac_GetPythonDir();
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46 #ifndef USE_BUILTIN_PATH
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47 extern char *PyMac_GetPythonPath();
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
48 #endif
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
50 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
51 curwd = PyMac_GetPythonDir();
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52 #ifndef USE_BUILTIN_PATH
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53 if ( pythonpath = PyMac_GetPythonPath(curwd) )
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
54 return pythonpath;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
55 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
56 #endif
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57 p = PYTHONPATH;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
58 endp = p;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59 pythonpath = malloc(2);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
60 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
61 strcpy(pythonpath, ":");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
62 while (*endp) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
63 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
64 if ( endp == NULL )
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 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
66 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
67 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
68 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
69 strcat(pythonpath, "\n");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
70 if ( *p == ':' ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71 p++;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72 strcat(pythonpath, curwd);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
73 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
74 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
75 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
76 /* 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
77 newlen -= strlen(curwd);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
78 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
79 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
80 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
81 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
82 pythonpath[newlen] = '\0';
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
83 p = endp + 1;
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 return pythonpath;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
87
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
88
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 /*
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
90 ** 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
91 */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
92 char *
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
93 PyMac_GetPythonDir()
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
94 {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
95 int item;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
96 static char name[256];
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
97 AliasHandle handle;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
98 FSSpec dirspec;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
99 int ok = 0;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
100 Boolean modified = 0, cannotmodify = 0;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
101 short oldrh, prefrh;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
102 short prefdirRefNum;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
103 long prefdirDirID;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
104
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
105 /*
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
106 ** Remember old resource file and try to open preferences file
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
107 ** in the preferences folder. If it doesn't exist we try to create
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
108 ** it. If anything fails here we limp on, but set cannotmodify so
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
109 ** we don't try to store things later on.
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
110 */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
111 oldrh = CurResFile();
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
112 if ( FindFolder(kOnSystemDisk, 'pref', kDontCreateFolder, &prefdirRefNum,
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
113 &prefdirDirID) != noErr ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
114 /* Something wrong with preferences folder */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
115 cannotmodify = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
116 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
117 (void)FSMakeFSSpec(prefdirRefNum, prefdirDirID, "\pPython Preferences", &dirspec);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
118 prefrh = FSpOpenResFile(&dirspec, fsRdWrShPerm);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
119 if ( prefrh == -1 ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
120 #ifdef USE_MAC_MODPREFS
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
121 /* It doesn't exist. Try to create it */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
122 FSpCreateResFile(&dirspec, 'PYTH', 'pref', 0);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
123 prefrh = FSpOpenResFile(&dirspec, fsRdWrShPerm);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
124 if ( prefrh == -1 ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
125 /* This is strange, what should we do now? */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
126 cannotmodify = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
127 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
128 UseResFile(prefrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
129 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
130 #else
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
131 printf("Error: no Preferences file. Attempting to limp on...\n");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
132 name[0] = 0;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
133 getwd(name);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
134 return name;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
135 #endif
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
136 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
137 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
138 /* So, we've opened our preferences file, we hope. Look for the alias */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
139 handle = (AliasHandle)Get1Resource('alis', PYTHONHOME_ID);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
140 if ( handle ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
141 /* It exists. Resolve it (possibly updating it) */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
142 if ( ResolveAlias(NULL, handle, &dirspec, &modified) == noErr ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
143 ok = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
144 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
145 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
146 if ( !ok ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
147 #ifdef USE_MAC_MODPREFS
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
148 /* No luck, so far. ask the user for help */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
149 item = Alert(NOPYTHON_ALERT, NULL);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
150 if ( item == YES_ITEM ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
151 /* The user wants to point us to a directory. Let her do so */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
152 ok = PyMac_GetDirectory(&dirspec);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
153 if ( ok )
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
154 modified = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
155 } else if ( item == CURWD_ITEM ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
156 /* The user told us the current directory is fine. Build an FSSpec for it */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
157 if ( getwd(name) ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
158 if ( FSMakeFSSpec(0, 0, Pstring(name), &dirspec) == 0 ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
159 ok = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
160 modified = 1;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
161 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
162 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
163 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
164 if ( handle ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
165 /* Set the (old, invalid) alias record to the new data */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
166 UpdateAlias(NULL, &dirspec, handle, &modified);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
167 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
168 #else
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
169 printf("Error: corrupted Preferences file. Attempting to limp on...\n");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
170 name[0] = 0;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
171 getwd(name);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
172 return name;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
173 #endif
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
174 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
175 #ifdef USE_MAC_MODPREFS
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
176 if ( ok && modified && !cannotmodify) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
177 /* We have a new, valid fsspec and we can update the preferences file. Do so. */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
178 if ( !handle ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
179 if (NewAlias(NULL, &dirspec, &handle) == 0 )
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
180 AddResource((Handle)handle, 'alis', PYTHONHOME_ID, "\p");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
181 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
182 ChangedResource((Handle)handle);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
183 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
184 UpdateResFile(prefrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
185 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
186 #endif
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
187 if ( !cannotmodify ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
188 /* This means we have the resfile open. Close it. */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
189 CloseResFile(prefrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
190 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
191 /* Back to the old resource file */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
192 UseResFile(oldrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
193 /* Now turn the fsspec into a path to give back to our caller */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
194 if ( ok ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
195 ok = (nfullpath(&dirspec, name) == 0);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
196 if ( ok ) strcat(name, ":");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
197 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
198 if ( !ok ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
199 /* If all fails, we return the current directory */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
200 name[0] = 0;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
201 (void)getwd(name);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
202 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
203 return name;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
204 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
205
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
206 #ifndef USE_BUILTIN_PATH
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
207 char *
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
208 PyMac_GetPythonPath(dir)
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
209 char *dir;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
210 {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
211 FSSpec dirspec;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
212 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
213 short prefdirRefNum;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
214 long prefdirDirID;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
215 char *rv;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
216 int i, newlen;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
217 Str255 pathitem;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
218
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
219 /*
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
220 ** Remember old resource file and try to open preferences file
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
221 ** in the preferences folder.
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
222 */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
223 oldrh = CurResFile();
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
224 if ( FindFolder(kOnSystemDisk, 'pref', kDontCreateFolder, &prefdirRefNum,
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
225 &prefdirDirID) == noErr ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
226 (void)FSMakeFSSpec(prefdirRefNum, prefdirDirID, "\pPython Preferences", &dirspec);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
227 prefrh = FSpOpenResFile(&dirspec, fsRdWrShPerm);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
228 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
229 /* 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
230 ** 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
231 ** 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
232 ** 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
233 */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
234 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
235 goto out;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
236 strcpy(rv, "\n");
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
237 for(i=1; ; i++) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
238 GetIndString(pathitem, PYTHONPATH_ID, i);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
239 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
240 break;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
241 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
242 /* We have to put the directory in place */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
243 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
244 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
245 goto out;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
246 strcat(rv, dir);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
247 /* 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
248 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
249 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
250 newlen--;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
251 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
252 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
253 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
254 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
255 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
256 } else {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
257 /* Use as-is */
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
258 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
259 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
260 goto out;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
261 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
262 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
263 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
264 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
265 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
266 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
267 free(rv);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
268 rv = NULL;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
269 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
270 if ( rv ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
271 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
272 rv++;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
273 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
274 out:
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
275 if ( prefrh ) {
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
276 CloseResFile(prefrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
277 UseResFile(oldrh);
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
278 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
279 return rv;
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
280 }
4c1d80953950 macgetpath - sys.path setting code factored out of config.c and
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
281 #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
282