X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=lib%2Fdirent.in.h;fp=lib%2Fdirent.in.h;h=15f0245b0929efa68b39f57123ae1e9ba2daf0d9;hb=785cdec4450a1459fdbb90df1344b69be34e0059;hp=2b1d0a52a21c37b14f9ddea1c3b4e89a838d50e8;hpb=cf7169a2ede9bb08b71de68fe0c8bbecf827abe6;p=tar diff --git a/lib/dirent.in.h b/lib/dirent.in.h index 2b1d0a5..15f0245 100644 --- a/lib/dirent.in.h +++ b/lib/dirent.in.h @@ -1,5 +1,5 @@ /* A GNU-like . - Copyright (C) 2006-2008 Free Software Foundation, Inc. + Copyright (C) 2006-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -42,7 +42,7 @@ extern DIR * opendir (const char *); extern int closedir (DIR *); #endif -/* Declare GNU extensions. */ +/* Declare other POSIX functions. */ #if @GNULIB_DIRFD@ # if !@HAVE_DECL_DIRFD@ && !defined dirfd @@ -58,6 +58,37 @@ extern int dirfd (DIR const *dir); dirfd (d)) #endif +#if @GNULIB_SCANDIR@ +/* Scan the directory DIR, calling FILTER on each directory entry. + Entries for which FILTER returns nonzero are individually malloc'd, + sorted using qsort with CMP, and collected in a malloc'd array in + *NAMELIST. Returns the number of entries selected, or -1 on error. */ +# if !@HAVE_SCANDIR@ +extern int scandir (const char *dir, struct dirent ***namelist, + int (*filter) (const struct dirent *), + int (*cmp) (const struct dirent **, const struct dirent **)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef scandir +# define scandir(d,n,f,c) \ + (GL_LINK_WARNING ("scandir is unportable - " \ + "use gnulib module scandir for portability"), \ + scandir (d, n, f, c)) +#endif + +#if @GNULIB_ALPHASORT@ +/* Compare two 'struct dirent' entries alphabetically. */ +# if !@HAVE_ALPHASORT@ +extern int alphasort (const struct dirent **, const struct dirent **); +# endif +#elif defined GNULIB_POSIXCHECK +# undef alphasort +# define alphasort(a,b) \ + (GL_LINK_WARNING ("alphasort is unportable - " \ + "use gnulib module alphasort for portability"), \ + alphasort (a, b)) +#endif + #ifdef __cplusplus } #endif