find: a lot more compliant to 'standard' find

(we were not respecting order of actions!).
Add -o and -a handling.
This commit is contained in:
Denis Vlasenko
2006-10-29 19:07:01 +00:00
parent e2fb719ba3
commit 5d499e1600
3 changed files with 270 additions and 176 deletions

View File

@@ -27,7 +27,14 @@ static int true_action(const char *fileName, struct stat *statbuf, void* userDat
return TRUE;
}
/*
/* fileAction return value of 0 on any file in directory will make
* recursive_action() return 0, but it doesn't stop directory traversal
* (fileAction/dirAction will be called on each file).
*
* if !depthFirst, dirAction return value of 0 (FALSE) or 2 (SKIP)
* prevents recursion into that directory, instead
* recursive_action() returns 0 (if FALSE) or 1 (if SKIP).
*
* followLinks=0/1 differs mainly in handling of links to dirs.
* 0: lstat(statbuf). Calls fileAction on link name even if points to dir.
* 1: stat(statbuf). Calls dirAction and optionally recurse on link to dir.