OSDN Git Service

Pass $(MATH_LIBS) $(NET_LIBS) when linking tests.
[pf3gnuchains/gcc-fork.git] / libiberty / getcwd.c
index 47b1c1e..28f26eb 100644 (file)
@@ -2,24 +2,18 @@
    This function is in the public domain. */
 
 /*
-NAME
-       getcwd -- get absolute pathname for current working directory
 
-SYNOPSIS
-       char *getcwd (char pathname[len], len)
+@deftypefn Supplemental char* getcwd (char *@var{pathname}, int @var{len})
 
-DESCRIPTION
-       Copy the absolute pathname for the current working directory into
-       the supplied buffer and return a pointer to the buffer.  If the 
-       current directory's path doesn't fit in LEN characters, the result
-       is NULL and errno is set.
+Copy the absolute pathname for the current working directory into
+@var{pathname}, which is assumed to point to a buffer of at least
+@var{len} bytes, and return a pointer to the buffer.  If the current
+directory's path doesn't fit in @var{len} characters, the result is
+@code{NULL} and @code{errno} is set.  If @var{pathname} is a null pointer,
+@code{getcwd} will obtain @var{len} bytes of space using
+@code{malloc}.
 
-       If pathname is a null pointer, getcwd() will obtain size bytes of
-       space using malloc.
-
-BUGS
-       Emulated via the getwd() call, which is reasonable for most
-       systems that do not have getcwd().
+@end deftypefn
 
 */
 
@@ -29,6 +23,12 @@ BUGS
 #include <sys/param.h>
 #endif
 #include <errno.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
 
 extern char *getwd ();
 extern int errno;
@@ -38,9 +38,7 @@ extern int errno;
 #endif
 
 char *
-getcwd (buf, len)
-  char *buf;
-  int len;
+getcwd (char *buf, size_t len)
 {
   char ourbuf[MAXPATHLEN];
   char *result;