summaryrefslogtreecommitdiff
path: root/src/lib/libast/include/ftwalk.h
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-06-24 22:28:35 +0000
committerIgor Pashev <pashev.igor@gmail.com>2012-06-24 22:28:35 +0000
commit3950ffe2a485479f6561c27364d3d7df5a21d124 (patch)
tree468c6e14449d1b1e279222ec32f676b0311917d2 /src/lib/libast/include/ftwalk.h
downloadksh-upstream.tar.gz
Imported Upstream version 93u+upstream
Diffstat (limited to 'src/lib/libast/include/ftwalk.h')
-rw-r--r--src/lib/libast/include/ftwalk.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/src/lib/libast/include/ftwalk.h b/src/lib/libast/include/ftwalk.h
new file mode 100644
index 0000000..a4f3955
--- /dev/null
+++ b/src/lib/libast/include/ftwalk.h
@@ -0,0 +1,124 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2011 AT&T Intellectual Property *
+* and is licensed under the *
+* Eclipse Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.eclipse.org/org/documents/epl-v10.html *
+* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+/*
+ * Phong Vo
+ * Glenn Fowler
+ * AT&T Research
+ *
+ * ast ftwalk interface definitions
+ * ftwalk was the initial improvement on ftw and nftw
+ * which formed the basis for the POSIX fts proposal
+ *
+ * NOTE: this file is in cahoots with the fts implementation
+ */
+
+#ifndef _FTWALK_H
+#define _FTWALK_H
+
+#define fts_info info
+#define fts_level level
+#define fts_link link
+#define fts_name name
+#define fts_namelen namelen
+#define fts_parent parent
+#define fts_path path
+#define fts_pathlen pathlen
+#define _fts_status status
+#define _fts_statb statb
+
+#define FTSENT Ftw_t /* <fts.h> internal */
+#define Ftsent FTW /* <fts.h> internal */
+
+#define _FTSENT_LOCAL_PRIVATE_ /* <fts.h> internal */ \
+ union \
+ { \
+ long number; /* local numeric value */ \
+ void* pointer; /* local pointer value */ \
+ } local;
+
+#include <fts.h>
+
+/*
+ * ftwalk() argument flags
+ */
+
+#define FTW_CANON FTS_CANON
+#define FTW_CHILDREN (FTS_USER<<0)
+#define FTW_DELAY FTS_NOSTAT
+#define FTW_DOT FTS_NOCHDIR
+#define FTW_META FTS_META
+#define FTW_MOUNT FTS_XDEV
+#define FTW_MULTIPLE FTS_ONEPATH
+#define FTW_NOSEEDOTDIR FTS_NOSEEDOTDIR
+#define FTW_PHYSICAL FTS_PHYSICAL
+#define FTW_POST (FTS_USER<<1)
+#define FTW_SEEDOTDIR FTS_SEEDOTDIR
+#define FTW_TOP FTS_TOP
+#define FTW_TWICE (FTS_USER<<2)
+#define FTW_USER (FTS_USER<<3)
+
+/*
+ * Ftw_t.info type bits
+ */
+
+#define FTW_C FTS_C
+#define FTW_D FTS_D
+#define FTW_DC FTS_DC
+#define FTW_DNR FTS_DNR
+#define FTW_DNX FTS_DNX
+#define FTW_DP FTS_DP
+#define FTW_F FTS_F
+#define FTW_NR FTS_NR
+#define FTW_NS FTS_NS
+#define FTW_NSOK FTS_NSOK
+#define FTW_NX FTS_NX
+#define FTW_P FTS_P
+#define FTW_SL FTS_SL
+
+/*
+ * Ftw_t.status entry values
+ */
+
+#define FTW_NAME FTS_DOT /* access by Ftw_t.name */
+#define FTW_PATH FTS_NOCHDIR /* access by Ftw_t.path */
+
+/*
+ * Ftw_t.status return values
+ */
+
+#define FTW_AGAIN FTS_AGAIN
+#define FTW_FOLLOW FTS_FOLLOW
+#define FTW_NOPOST FTS_NOPOSTORDER
+#define FTW_SKIP FTS_SKIP
+#define FTW_STAT FTS_STAT
+
+#if _BLD_ast && defined(__EXPORT__)
+#define extern __EXPORT__
+#endif
+
+extern int ftwalk(const char*, int(*)(Ftw_t*), int, int(*)(Ftw_t*, Ftw_t*));
+extern int ftwflags(void);
+
+#undef extern
+
+#endif