Loading...
--- Libc/Libc-763.13/include/fts.h
+++ Libc/Libc-1534.40.2/include/fts.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003-2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (c) 2000, 2003-2006, 2008, 2012 Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
@@ -59,21 +59,14 @@
#define _FTS_H_
#include <sys/_types.h>
-
-#ifndef _DEV_T
-typedef __darwin_dev_t dev_t; /* device number */
-#define _DEV_T
-#endif
-
-#ifndef _INO_T
-typedef __darwin_ino_t ino_t; /* inode number */
-#define _INO_T
-#endif
-
-#ifndef _NLINK_T
-typedef __uint16_t nlink_t; /* link count */
-#define _NLINK_T
-#endif
+#include <sys/_types/_dev_t.h>
+#include <sys/_types/_ino_t.h>
+#include <sys/_types/_nlink_t.h>
+
+#include <Availability.h>
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wstrict-prototypes"
typedef struct {
struct _ftsent *fts_cur; /* current node */
@@ -100,9 +93,14 @@
#define FTS_PHYSICAL 0x010 /* physical walk */
#define FTS_SEEDOT 0x020 /* return dot and dot-dot */
#define FTS_XDEV 0x040 /* don't cross devices */
-#define FTS_WHITEOUT 0x080 /* return whiteout information */
+#define FTS_WHITEOUT 0x080 /* (no longer supported) return whiteout information */
#define FTS_COMFOLLOWDIR 0x400 /* (non-std) follow command line symlinks for directories only */
+#if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 1090) || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 70000)
#define FTS_OPTIONMASK 0x4ff /* valid user option mask */
+#else
+#define FTS_NOSTAT_TYPE 0x800 /* (non-std) no stat, but use d_type in struct dirent when available */
+#define FTS_OPTIONMASK 0xcff /* valid user option mask */
+#endif
#define FTS_NAMEONLY 0x100 /* (private) child names only */
#define FTS_STOP 0x200 /* (private) unrecoverable error */
@@ -121,7 +119,7 @@
char *fts_accpath; /* access path */
char *fts_path; /* root path */
int fts_errno; /* errno for this node */
- int fts_symfd; /* fd for symlink */
+ int fts_symfd; /* fd for symlink or chdir */
unsigned short fts_pathlen; /* strlen(fts_path) */
unsigned short fts_namelen; /* strlen(fts_name) */
@@ -131,6 +129,7 @@
#define FTS_ROOTPARENTLEVEL -1
#define FTS_ROOTLEVEL 0
+#define FTS_MAXLEVEL 0x7fffffff
short fts_level; /* depth (-1 to N) */
#define FTS_D 1 /* preorder directory */
@@ -152,6 +151,7 @@
#define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */
#define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */
#define FTS_ISW 0x04 /* this is a whiteout object */
+#define FTS_CHDIRFD 0x08 /* indicates the fts_symfd field was set for chdir */
unsigned short fts_flags; /* private flags for FTSENT structure */
#define FTS_AGAIN 1 /* read node again */
@@ -198,15 +198,22 @@
#endif /* !LIBC_ALIAS_FTS_OPEN */
//End-Libc
#ifdef __BLOCKS__
+#if __has_attribute(noescape)
+#define __fts_noescape __attribute__((__noescape__))
+#else
+#define __fts_noescape
+#endif
//Begin-Libc
#ifndef LIBC_ALIAS_FTS_OPEN_B
//End-Libc
FTS *fts_open_b(char * const *, int,
- int (^)(const FTSENT **, const FTSENT **)) __DARWIN_INODE64(fts_open_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+ int (^)(const FTSENT **, const FTSENT **) __fts_noescape)
+ __DARWIN_INODE64(fts_open_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
//Begin-Libc
#else /* LIBC_ALIAS_FTS_OPEN */
FTS *fts_open_b(char * const *, int,
- int (^)(const FTSENT **, const FTSENT **)) LIBC_INODE64(fts_open_b);
+ int (^)(const FTSENT **, const FTSENT **) __fts_noescape)
+ LIBC_INODE64(fts_open_b);
#endif /* !LIBC_ALIAS_FTS_OPEN */
//End-Libc
#endif /* __BLOCKS__ */
@@ -230,4 +237,6 @@
//End-Libc
__END_DECLS
+#pragma clang diagnostic pop
#endif /* !_FTS_H_ */
+