]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - io/ftw.h
Fix BRE typos in check-safety.sh
[thirdparty/glibc.git] / io / ftw.h
index 4939297b34f5626f6904018fc2c4c3b368722e4b..30e5c56b5916f4b513a614e168e480e6bbf2e116 100644 (file)
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,1996,1997,1998,1999,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2022 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  *     X/Open Portability Guide 4.2: ftw.h
@@ -44,7 +43,7 @@ enum
   FTW_NS,              /* Unstatable file.  */
 #define FTW_NS  FTW_NS
 
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
 
   FTW_SL,              /* Symbolic link.  */
 # define FTW_SL         FTW_SL
@@ -74,8 +73,34 @@ enum
 # define FTW_CHDIR     FTW_CHDIR
   FTW_DEPTH = 8                /* Report files in directory before directory itself.*/
 # define FTW_DEPTH     FTW_DEPTH
+# ifdef __USE_GNU
+  ,
+  FTW_ACTIONRETVAL = 16        /* Assume callback to return FTW_* values instead of
+                          zero to continue and non-zero to terminate.  */
+#  define FTW_ACTIONRETVAL FTW_ACTIONRETVAL
+# endif
 };
 
+#ifdef __USE_GNU
+/* Return values from callback functions.  */
+enum
+{
+  FTW_CONTINUE = 0,    /* Continue with next sibling or for FTW_D with the
+                          first child.  */
+# define FTW_CONTINUE  FTW_CONTINUE
+  FTW_STOP = 1,                /* Return from `ftw' or `nftw' with FTW_STOP as return
+                          value.  */
+# define FTW_STOP      FTW_STOP
+  FTW_SKIP_SUBTREE = 2,        /* Only meaningful for FTW_D: Don't walk through the
+                          subtree, instead just continue with its next
+                          sibling. */
+# define FTW_SKIP_SUBTREE FTW_SKIP_SUBTREE
+  FTW_SKIP_SIBLINGS = 3,/* Continue with FTW_DP callback for current directory
+                           (if FTW_DEPTH) and then its siblings.  */
+# define FTW_SKIP_SIBLINGS FTW_SKIP_SIBLINGS
+};
+#endif
+
 /* Structure used for fourth argument to callback function for `nftw'.  */
 struct FTW
   {
@@ -86,19 +111,19 @@ struct FTW
 
 
 /* Convenient types for callback functions.  */
-typedef int (*__ftw_func_t) (__const char *__filename,
-                            __const struct stat *__status, int __flag);
+typedef int (*__ftw_func_t) (const char *__filename,
+                            const struct stat *__status, int __flag);
 #ifdef __USE_LARGEFILE64
-typedef int (*__ftw64_func_t) (__const char *__filename,
-                              __const struct stat64 *__status, int __flag);
+typedef int (*__ftw64_func_t) (const char *__filename,
+                              const struct stat64 *__status, int __flag);
 #endif
 #ifdef __USE_XOPEN_EXTENDED
-typedef int (*__nftw_func_t) (__const char *__filename,
-                             __const struct stat *__status, int __flag,
+typedef int (*__nftw_func_t) (const char *__filename,
+                             const struct stat *__status, int __flag,
                              struct FTW *__info);
 # ifdef __USE_LARGEFILE64
-typedef int (*__nftw64_func_t) (__const char *__filename,
-                               __const struct stat64 *__status,
+typedef int (*__nftw64_func_t) (const char *__filename,
+                               const struct stat64 *__status,
                                int __flag, struct FTW *__info);
 # endif
 #endif
@@ -108,18 +133,40 @@ typedef int (*__nftw64_func_t) (__const char *__filename,
    This function is a possible cancellation point and therefore not
    marked with __THROW.  */
 #ifndef __USE_FILE_OFFSET64
-extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors);
+extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors)
+     __nonnull ((1, 2));
 #else
 # ifdef __REDIRECT
-extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func,
-                            int __descriptors), ftw64);
+#  ifndef __USE_TIME_BITS64
+extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
+                            int __descriptors), ftw64) __nonnull ((1, 2));
+#  else
+extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
+                            int __descriptors), __ftw64_time64)
+     __nonnull ((1, 2));
+#  endif
 # else
-#  define ftw ftw64
+#  ifndef __USE_TIME_BITS64
+#   define ftw ftw64
+#  else
+#   define ftw __ftw64_time64
+#  endif
 # endif
 #endif
 #ifdef __USE_LARGEFILE64
-extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
-                 int __descriptors);
+# ifndef __USE_TIME_BITS64
+extern int ftw64 (const char *__dir, __ftw64_func_t __func,
+                 int __descriptors) __nonnull ((1, 2));
+# else
+#  ifdef __REDIRECT
+extern int __REDIRECT (ftw64, (const char *__dir, __ftw64_func_t __func,
+                              int __descriptors),
+                      __ftw64_time64)
+     __nonnull ((1, 2));
+#  else
+#   define nftw64 __nftw64_time64
+#  endif
+# endif
 #endif
 
 #ifdef __USE_XOPEN_EXTENDED
@@ -129,19 +176,41 @@ extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
    This function is a possible cancellation point and therefore not
    marked with __THROW.  */
 # ifndef __USE_FILE_OFFSET64
-extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors,
-                int __flag);
+extern int nftw (const char *__dir, __nftw_func_t __func, int __descriptors,
+                int __flag) __nonnull ((1, 2));
 # else
 #  ifdef __REDIRECT
-extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func,
-                             int __descriptors, int __flag), nftw64);
+#   ifndef __USE_TIME_BITS64
+extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
+                             int __descriptors, int __flag), nftw64)
+     __nonnull ((1, 2));
+#   else
+extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
+                             int __descriptors, int __flag), __nftw64_time64)
+     __nonnull ((1, 2));
+#   endif
 #  else
-#   define nftw nftw64
+#   ifndef __USE_TIME_BITS64
+#    define nftw nftw64
+#   else
+#    define nftw __nftw64_time64
+#   endif
 #  endif
 # endif
 # ifdef __USE_LARGEFILE64
-extern int nftw64 (__const char *__dir, __nftw64_func_t __func,
-                  int __descriptors, int __flag);
+#  ifndef __USE_TIME_BITS64
+extern int nftw64 (const char *__dir, __nftw64_func_t __func,
+                  int __descriptors, int __flag) __nonnull ((1, 2));
+#  else
+#   ifdef __REDIRECT
+extern int __REDIRECT (nftw64, (const char *__dir, __nftw64_func_t __func,
+                               int __descriptors, int __flag),
+                      __nftw64_time64)
+     __nonnull ((1, 2));
+#   else
+#    define nftw64 __nftw64_time64
+#   endif
+#  endif
 # endif
 #endif