Merge from gnulib.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Apr 2011 18:44:05 +0000 (11:44 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Apr 2011 18:44:05 +0000 (11:44 -0700)
lib/allocator.h
lib/careadlinkat.c
lib/careadlinkat.h

index a89ba32..953117d 100644 (file)
@@ -18,6 +18,7 @@
 /* Written by Paul Eggert.  */
 
 #ifndef _GL_ALLOCATOR_H
+#define _GL_ALLOCATOR_H
 
 #include <stddef.h>
 
@@ -53,4 +54,4 @@ struct allocator
 /* An allocator using the stdlib functions and a null DIE function.  */
 extern struct allocator const stdlib_allocator;
 
-#endif
+#endif /* _GL_ALLOCATOR_H */
index 7a7806d..01883db 100644 (file)
@@ -65,7 +65,10 @@ careadlinkatcwd (int fd, char const *filename, char *buffer,
    the returned value if it is nonnull and is not BUFFER.  A null
    ALLOC stands for the standard allocator.
 
-   The PREADLINKAT function specifies how to read links.
+   The PREADLINKAT function specifies how to read links.  It operates
+   like POSIX readlinkat()
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+   but can assume that its first argument is the same as FD.
 
    If successful, return the buffer address; otherwise return NULL and
    set errno.  */
index c5e4bcf..4f0184b 100644 (file)
@@ -18,6 +18,7 @@
 /* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
 
 #ifndef _GL_CAREADLINKAT_H
+#define _GL_CAREADLINKAT_H
 
 #include <fcntl.h>
 #include <unistd.h>
@@ -37,7 +38,10 @@ struct allocator;
    buffer managed by ALLOC.  It is the caller's responsibility to free
    the returned value if it is nonnull and is not BUFFER.
 
-   The PREADLINKAT function specifies how to read links.
+   The PREADLINKAT function specifies how to read links.  It operates
+   like POSIX readlinkat()
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+   but can assume that its first argument is the same as FD.
 
    If successful, return the buffer address; otherwise return NULL and
    set errno.  */
@@ -49,8 +53,10 @@ char *careadlinkat (int fd, char const *filename,
                                             char *, size_t));
 
 /* Suitable values for careadlinkat's FD and PREADLINKAT arguments,
-   when doing a plain readlink.  */
+   when doing a plain readlink:
+   Pass FD = AT_FDCWD and PREADLINKAT = careadlinkatcwd.  */
 #if HAVE_READLINKAT
+/* AT_FDCWD is declared in <fcntl.h>, readlinkat in <unistd.h>.  */
 # define careadlinkatcwd readlinkat
 #else
 /* Define AT_FDCWD independently, so that the careadlinkat module does