/*********************************************************************** * * * This software is part of the ast package * * Copyright (c) 1985-2007 AT&T Knowledge Ventures * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Knowledge Ventures * * * * A copy of the License is available at * * http://www.opensource.org/licenses/cpl1.0.txt * * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * * * * Information and Software Systems Research * * AT&T Research * * Florham Park NJ * * * * Glenn Fowler * * David Korn * * Phong Vo * * * ***********************************************************************/ #pragma prototyped /* * ftw implementation */ #include #include static int (*ftw_userf)(const char*, const struct stat*, int); static int ftw_user(Ftw_t* ftw) { register int n = ftw->info; if (n & (FTW_C|FTW_NX)) n = FTW_DNR; else if (n & FTW_SL) n = FTW_NS; return (*ftw_userf)(ftw->path, &ftw->statb, n); } int ftw(const char* path, int(*userf)(const char*, const struct stat*, int), int depth) { NoP(depth); ftw_userf = userf; return ftwalk(path, ftw_user, FTW_DOT, NiL); }