diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2008-05-02 14:23:47 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2008-05-02 14:23:47 +0800 |
commit | f0f930d60cd62f5fe5ba28460b43f333e8062b94 (patch) | |
tree | cd5cf2363e169277d8f30e7914600acfb3de3265 /src | |
parent | [JOBS] Fix cmdtxt crash on if statements (diff) | |
download | dash-f0f930d60cd62f5fe5ba28460b43f333e8062b94.tar.gz dash-f0f930d60cd62f5fe5ba28460b43f333e8062b94.zip |
[CD] Restored non-glibc getcwd support
These days dash is expected to build with libraries other than glibc so we need to support the old way of calling getcwd again. Thanks to Dan McGee for reporting this bug when dash is built with klibc. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src')
-rw-r--r-- | src/cd.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cd.c b/src/cd.c index 1849c69..cb6e24d 100644 --- a/src/cd.c +++ b/src/cd.c @@ -241,8 +241,6 @@ updatepwd(const char *dir) } -#define MAXPWD 256 - /* * Find out what the current directory is. If we already know the current * directory, this routine returns immediately. @@ -251,8 +249,13 @@ inline STATIC char * getpwd() { +#ifdef _GNU_SOURCE char *dir = getcwd(0, 0); return dir ? dir : nullstr; +#else + char buf[PATH_MAX]; + return getcwd(buf, sizeof(buf)) ? savestr(buf) : nullstr; +#endif } int |