Save static pointer to malloc'ed buffer

This commit is contained in:
Guido van Rossum 1994-10-05 12:25:12 +00:00
parent a44031031c
commit 6e890b86a8
1 changed files with 8 additions and 8 deletions

View File

@ -149,27 +149,27 @@ extern char *getenv();
char *
getpythonpath()
{
#ifdef macintosh
return PYTHONPATH;
#else /* !macintosh */
char *path = getenv("PYTHONPATH");
char *defpath = PYTHONPATH;
char *buf;
static char *buf = NULL;
char *p;
int n;
if (path == 0 || *path == '\0')
return defpath;
if (path == NULL)
path = "";
n = strlen(path) + strlen(defpath) + 2;
if (buf != NULL) {
free(buf);
buf = NULL;
}
buf = malloc(n);
if (buf == NULL)
return path; /* XXX too bad -- but not likely */
fatal("not enough memory to copy module search path");
strcpy(buf, path);
p = buf + strlen(buf);
*p++ = DELIM;
strcpy(p, defpath);
return buf;
#endif /* !macintosh */
}