aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sh/getcwd.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sh/getcwd.c')
-rw-r--r--lib/sh/getcwd.c34
1 files changed, 10 insertions, 24 deletions
diff --git a/lib/sh/getcwd.c b/lib/sh/getcwd.c
index d39655d..0c8b1da 100644
--- a/lib/sh/getcwd.c
+++ b/lib/sh/getcwd.c
@@ -40,26 +40,12 @@
#include <bashansi.h>
+#include <xmalloc.h>
+
#if !defined (errno)
extern int errno;
#endif /* !errno */
-#if defined (__STDC__)
-# define CONST const
-# define PTR void *
-#else /* !__STDC__ */
-# define CONST
-# define PTR char *
-#endif /* !__STDC__ */
-
-#if !defined (PATH_MAX)
-# if defined (MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else /* !MAXPATHLEN */
-# define PATH_MAX 1024
-# endif /* !MAXPATHLEN */
-#endif /* !PATH_MAX */
-
#if !defined (HAVE_LSTAT)
# define lstat stat
#endif
@@ -85,11 +71,11 @@ getcwd (buf, size)
size_t size;
#endif /* !__STDC__ */
{
- static CONST char dots[]
+ static const char dots[]
= "../../../../../../../../../../../../../../../../../../../../../../../\
../../../../../../../../../../../../../../../../../../../../../../../../../../\
../../../../../../../../../../../../../../../../../../../../../../../../../..";
- CONST char *dotp, *dotlist;
+ const char *dotp, *dotlist;
size_t dotsize;
dev_t rootdev, thisdev;
ino_t rootino, thisino;
@@ -149,7 +135,7 @@ getcwd (buf, size)
}
else
{
- new = (char *)realloc ((PTR) dotlist, dotsize * 2 + 1);
+ new = (char *)realloc ((PTR_T) dotlist, dotsize * 2 + 1);
if (new == NULL)
goto lose;
}
@@ -232,7 +218,7 @@ getcwd (buf, size)
}
else
{
- new = (char *)realloc ((PTR) pathbuf, (pathsize * 2));
+ new = (char *)realloc ((PTR_T) pathbuf, (pathsize * 2));
if (!new)
goto lose;
pathp = new + space;
@@ -257,7 +243,7 @@ getcwd (buf, size)
*--pathp = '/';
if (dotlist != dots)
- free ((PTR) dotlist);
+ free ((PTR_T) dotlist);
{
size_t len = pathbuf + pathsize - pathp;
@@ -274,7 +260,7 @@ getcwd (buf, size)
errno = ERANGE;
goto lose2;
}
- (void) memcpy((PTR) buf, (PTR) pathp, len);
+ (void) memcpy((PTR_T) buf, (PTR_T) pathp, len);
}
if (pathbuf != path)
@@ -286,7 +272,7 @@ getcwd (buf, size)
if ((dotlist != dots) && dotlist)
{
int e = errno;
- free ((PTR) dotlist);
+ free ((PTR_T) dotlist);
errno = e;
}
@@ -294,7 +280,7 @@ getcwd (buf, size)
if ((pathbuf != path) && pathbuf)
{
int e = errno;
- free ((PTR) pathbuf);
+ free ((PTR_T) pathbuf);
errno = e;
}
return ((char *)NULL);