summaryrefslogtreecommitdiff
path: root/lib/readlinkat.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-10-18 23:33:40 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2014-10-18 23:33:40 -0700
commit821339c944eea52105777c5f52bdc3cf477b475c (patch)
tree373d674f6993de76acad4ac09eaf3fc457815bf1 /lib/readlinkat.c
parent265331858f3cd63f3ab593461ca4f2931780ba5e (diff)
downloademacs-821339c944eea52105777c5f52bdc3cf477b475c.tar.gz
Merge from gnulib.
This incorporates: 2014-10-18 readlinkat: port to AIX 7.1 2014-10-07 fcntl: fix error reporting by dupfd * lib/fcntl.c, lib/readlinkat.c, lib/unistd.in.h, m4/readlinkat.m4: * m4/unistd_h.m4: Update from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
Diffstat (limited to 'lib/readlinkat.c')
-rw-r--r--lib/readlinkat.c36
1 files changed, 25 insertions, 11 deletions
diff --git a/lib/readlinkat.c b/lib/readlinkat.c
index c8a60500f18..83ea0af02e4 100644
--- a/lib/readlinkat.c
+++ b/lib/readlinkat.c
@@ -20,6 +20,18 @@
#include <unistd.h>
+#if HAVE_READLINKAT
+
+# undef readlinkat
+
+ssize_t
+rpl_readlinkat (int fd, char const *file, char *buf, size_t len)
+{
+ return readlinkat (fd, file, buf, len);
+}
+
+#else
+
/* Gnulib provides a readlink stub for mingw; use it for distinction
between EINVAL and ENOENT, rather than always failing with ENOSYS. */
@@ -34,14 +46,16 @@
then readlink/restore_cwd. If either the save_cwd or the restore_cwd
fails, then give a diagnostic and exit nonzero. */
-#define AT_FUNC_NAME readlinkat
-#define AT_FUNC_F1 readlink
-#define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t len
-#define AT_FUNC_POST_FILE_ARGS , buf, len
-#define AT_FUNC_RESULT ssize_t
-#include "at-func.c"
-#undef AT_FUNC_NAME
-#undef AT_FUNC_F1
-#undef AT_FUNC_POST_FILE_PARAM_DECLS
-#undef AT_FUNC_POST_FILE_ARGS
-#undef AT_FUNC_RESULT
+# define AT_FUNC_NAME readlinkat
+# define AT_FUNC_F1 readlink
+# define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t len
+# define AT_FUNC_POST_FILE_ARGS , buf, len
+# define AT_FUNC_RESULT ssize_t
+# include "at-func.c"
+# undef AT_FUNC_NAME
+# undef AT_FUNC_F1
+# undef AT_FUNC_POST_FILE_PARAM_DECLS
+# undef AT_FUNC_POST_FILE_ARGS
+# undef AT_FUNC_RESULT
+
+#endif