X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fdirent.in.h;h=c582d1c58590d803723dd507ad27ec417446da4f;hb=00eece306cac8a9d5315e6f0f53ae2c11cd8b553;hp=15d488b3563c87bab93b8eeb07eac9ea9778ca2e;hpb=40aa4775a4319d3a3e5a571e6c28feb1d8566adc;p=gnulib.git diff --git a/lib/dirent.in.h b/lib/dirent.in.h index 15d488b35..c582d1c58 100644 --- a/lib/dirent.in.h +++ b/lib/dirent.in.h @@ -14,11 +14,12 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#ifndef _GL_DIRENT_H + #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif - -#ifndef _GL_DIRENT_H +@PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_DIRENT_H@ @@ -50,11 +51,28 @@ _GL_CXXALIAS_SYS (closedir, int, (DIR *)); _GL_CXXALIASWARN (closedir); #if @GNULIB_DIRFD@ -# if !@HAVE_DECL_DIRFD@ && !defined dirfd /* Return the file descriptor associated with the given directory stream, or -1 if none exists. */ -_GL_EXTERN_C int dirfd (DIR *dir) _GL_ARG_NONNULL ((1)); +# if @REPLACE_DIRFD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef dirfd +# define dirfd rpl_dirfd +# endif +_GL_FUNCDECL_RPL (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (dirfd, int, (DIR *)); +# else +# if defined __cplusplus && defined GNULIB_NAMESPACE && defined dirfd + /* dirfd is defined as a macro and not as a function. + Turn it into a function and get rid of the macro. */ +static inline int (dirfd) (DIR *dp) { return dirfd (dp); } +# undef dirfd +# endif +# if !(@HAVE_DECL_DIRFD@ || defined dirfd) +_GL_FUNCDECL_SYS (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (dirfd, int, (DIR *)); # endif +_GL_CXXALIASWARN (dirfd); #elif defined GNULIB_POSIXCHECK # undef dirfd # if HAVE_RAW_DECL_DIRFD @@ -77,7 +95,7 @@ _GL_WARN_ON_USE (dirfd, "dirfd is unportable - " _GL_FUNCDECL_RPL (fdopendir, DIR *, (int fd)); _GL_CXXALIAS_RPL (fdopendir, DIR *, (int fd)); # else -# if !@HAVE_FDOPENDIR@ +# if !@HAVE_FDOPENDIR@ || !@HAVE_DECL_FDOPENDIR@ _GL_FUNCDECL_SYS (fdopendir, DIR *, (int fd)); # endif _GL_CXXALIAS_SYS (fdopendir, DIR *, (int fd));