summaryrefslogtreecommitdiffstats
path: root/Modules/getpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/getpath.c')
-rw-r--r--Modules/getpath.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/Modules/getpath.c b/Modules/getpath.c
new file mode 100644
index 0000000..8e1c00d
--- /dev/null
+++ b/Modules/getpath.c
@@ -0,0 +1,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;
+}