diff options
author | Benjamin Peterson <benjamin@python.org> | 2013-08-24 02:01:48 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2013-08-24 02:01:48 (GMT) |
commit | 3a7dffa4cec84c94685fc9dccbded8ee41904fd5 (patch) | |
tree | 4dd078de4f3cc6fce7c9298689bdc76e27ed8117 /Python | |
parent | 12d5e0f01693686a96eb45af88c2b7f7c6caaac6 (diff) | |
download | cpython-3a7dffa4cec84c94685fc9dccbded8ee41904fd5.zip cpython-3a7dffa4cec84c94685fc9dccbded8ee41904fd5.tar.gz cpython-3a7dffa4cec84c94685fc9dccbded8ee41904fd5.tar.bz2 |
remove support for compiling on systems without getcwd()
Do we need a fallback implementation of getcwd() from 1991 that claims to
support "really old Unix systems"? I don't think so.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/getcwd.c | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/Python/getcwd.c b/Python/getcwd.c deleted file mode 100644 index 4bedbd1..0000000 --- a/Python/getcwd.c +++ /dev/null @@ -1,83 +0,0 @@ - -/* Two PD getcwd() implementations. - Author: Guido van Rossum, CWI Amsterdam, Jan 1991, <guido@cwi.nl>. */ - -#include <stdio.h> -#include <errno.h> - -#ifdef HAVE_GETWD - -/* Version for BSD systems -- use getwd() */ - -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#ifndef MAXPATHLEN -#if defined(PATH_MAX) && PATH_MAX > 1024 -#define MAXPATHLEN PATH_MAX -#else -#define MAXPATHLEN 1024 -#endif -#endif - -extern char *getwd(char *); - -char * -getcwd(char *buf, int size) -{ - char localbuf[MAXPATHLEN+1]; - char *ret; - - if (size <= 0) { - errno = EINVAL; - return NULL; - } - ret = getwd(localbuf); - if (ret != NULL && strlen(localbuf) >= (size_t)size) { - errno = ERANGE; - return NULL; - } - if (ret == NULL) { - errno = EACCES; /* Most likely error */ - return NULL; - } - strncpy(buf, localbuf, size); - return buf; -} - -#else /* !HAVE_GETWD */ - -/* Version for really old UNIX systems -- use pipe from pwd */ - -#ifndef PWD_CMD -#define PWD_CMD "/bin/pwd" -#endif - -char * -getcwd(char *buf, int size) -{ - FILE *fp; - char *p; - int sts; - if (size <= 0) { - errno = EINVAL; - return NULL; - } - if ((fp = popen(PWD_CMD, "r")) == NULL) - return NULL; - if (fgets(buf, size, fp) == NULL || (sts = pclose(fp)) != 0) { - errno = EACCES; /* Most likely error */ - return NULL; - } - for (p = buf; *p != '\n'; p++) { - if (*p == '\0') { - errno = ERANGE; - return NULL; - } - } - *p = '\0'; - return buf; -} - -#endif /* !HAVE_GETWD */ |