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