summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/libiberty/getcwd.c
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1998-03-01 22:58:51 +0000
committerjdp <jdp@FreeBSD.org>1998-03-01 22:58:51 +0000
commit2cbd0590cd191c81b59e94970f4c40c371f9e415 (patch)
treeb7676f996414b979dcbb7de92a3e86b97320d023 /contrib/binutils/libiberty/getcwd.c
downloadFreeBSD-src-2cbd0590cd191c81b59e94970f4c40c371f9e415.zip
FreeBSD-src-2cbd0590cd191c81b59e94970f4c40c371f9e415.tar.gz
Initial import of GNU binutils version 2.8.1. Believe it or not,
this is heavily stripped down.
Diffstat (limited to 'contrib/binutils/libiberty/getcwd.c')
-rw-r--r--contrib/binutils/libiberty/getcwd.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/contrib/binutils/libiberty/getcwd.c b/contrib/binutils/libiberty/getcwd.c
new file mode 100644
index 0000000..60c1dd8
--- /dev/null
+++ b/contrib/binutils/libiberty/getcwd.c
@@ -0,0 +1,52 @@
+/* Emulate getcwd using getwd.
+ This function is in the public domain. */
+
+/*
+NAME
+ getcwd -- get absolute pathname for current working directory
+
+SYNOPSIS
+ char *getcwd (char pathname[len], 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.
+
+BUGS
+ Emulated via the getwd() call, which is reasonable for most
+ systems that do not have getcwd().
+
+*/
+
+#ifndef NO_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <errno.h>
+
+extern char *getwd ();
+extern int errno;
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+char *
+getcwd (buf, len)
+ char *buf;
+ int len;
+{
+ char ourbuf[MAXPATHLEN];
+ char *result;
+
+ result = getwd (ourbuf);
+ if (result) {
+ if (strlen (ourbuf) >= len) {
+ errno = ERANGE;
+ return 0;
+ }
+ strcpy (buf, ourbuf);
+ }
+ return buf;
+}
OpenPOWER on IntegriCloud