-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
Expand file tree
/
Copy pathgetpath.c
More file actions
41 lines (35 loc) · 879 Bytes
/
getpath.c
File metadata and controls
41 lines (35 loc) · 879 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "Python.h"
#include "osdefs.h"
#ifndef PYTHONPATH
#define PYTHONPATH ".:/usr/local/lib/python"
#endif
/* Return the initial python search path. This is called once from
initsys() to initialize sys.path. The environment variable
PYTHONPATH is fetched and the default path appended. The default
path may be passed to the preprocessor; if not, a system-dependent
default is used. */
char *
getpythonpath()
{
char *path = getenv("PYTHONPATH");
char *defpath = PYTHONPATH;
static char *buf = NULL;
char *p;
int n;
if (path == NULL)
path = "";
n = strlen(path) + strlen(defpath) + 2;
if (buf != NULL) {
free(buf);
buf = NULL;
}
buf = malloc(n);
if (buf == NULL)
Py_FatalError("not enough memory to copy module search path");
strcpy(buf, path);
p = buf + strlen(buf);
if (p != buf)
*p++ = DELIM;
strcpy(p, defpath);
return buf;
}