]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - io/ftw.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / io / ftw.h
index f2c59c44128c4e2fbd366f0e6faf2d367e4ffb66..1ef67f7f3c2b890564c1e444401f0121e593f46c 100644 (file)
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -1,20 +1,19 @@
-/* Copyright (C) 1992, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 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
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://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,7 +73,33 @@ 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,58 +111,64 @@ struct FTW
 
 
 /* Convenient types for callback functions.  */
-typedef int (*__ftw_func_t) __P ((__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) __P ((__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) __P ((__const char *__filename,
-                                  __const struct stat *__status, int __flag,
-                                  struct FTW *__info));
+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) __P ((__const char *__filename,
-                                    __const struct stat64 *__status,
-                                    int __flag, struct FTW *__info));
+typedef int (*__nftw64_func_t) (const char *__filename,
+                               const struct stat64 *__status,
+                               int __flag, struct FTW *__info);
 # endif
 #endif
 
-/* Call a function on every element in a directory tree.  */
+/* Call a function on every element in a directory tree.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
 #ifndef __USE_FILE_OFFSET64
-extern int ftw __P ((__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, __P ((__const char *__dir, __ftw_func_t __func,
-                                 int __descriptors)), ftw64);
+extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
+                            int __descriptors), ftw64) __nonnull ((1, 2));
 # else
 #  define ftw ftw64
 # endif
 #endif
 #ifdef __USE_LARGEFILE64
-extern int ftw64 __P ((__const char *__dir, __ftw64_func_t __func,
-                      int __descriptors));
+extern int ftw64 (const char *__dir, __ftw64_func_t __func,
+                 int __descriptors) __nonnull ((1, 2));
 #endif
 
 #ifdef __USE_XOPEN_EXTENDED
 /* Call a function on every element in a directory tree.  FLAG allows
-   to specify the behaviour more detailed.  */
+   to specify the behaviour more detailed.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
 # ifndef __USE_FILE_OFFSET64
-extern int nftw __P ((__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, __P ((__const char *__dir, __nftw_func_t __func,
-                                  int __descriptors, int __flag)), nftw64);
+extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
+                             int __descriptors, int __flag), nftw64)
+     __nonnull ((1, 2));
 #  else
 #   define nftw nftw64
 #  endif
 # endif
 # ifdef __USE_LARGEFILE64
-extern int nftw64 __P ((__const char *__dir, __nftw64_func_t __func,
-                       int __descriptors, int __flag));
+extern int nftw64 (const char *__dir, __nftw64_func_t __func,
+                  int __descriptors, int __flag) __nonnull ((1, 2));
 # endif
 #endif