recursive_action: add depth param

chmod: match coreutils versus following links
This commit is contained in:
Denis Vlasenko
2006-10-27 23:42:25 +00:00
parent e80e2a3660
commit 8c35d65c43
9 changed files with 125 additions and 60 deletions

View File

@@ -56,7 +56,7 @@ static int num_matches;
static int exec_opt;
#endif
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
static int fileAction(const char *fileName, struct stat *statbuf, void* junk, int depth)
{
#ifdef CONFIG_FEATURE_FIND_XDEV
if (S_ISDIR(statbuf->st_mode) && xdev_count) {
@@ -307,12 +307,12 @@ int find_main(int argc, char **argv)
if (firstopt == 1) {
if (!recursive_action(".", TRUE, dereference, FALSE, fileAction,
fileAction, NULL))
fileAction, NULL, 0))
status = EXIT_FAILURE;
} else {
for (i = 1; i < firstopt; i++) {
if (!recursive_action(argv[i], TRUE, dereference, FALSE, fileAction,
fileAction, NULL))
fileAction, NULL, 0))
status = EXIT_FAILURE;
}
}

View File

@@ -290,7 +290,7 @@ static void load_regexes_from_file(llist_t *fopt)
}
static int file_action_grep(const char *filename, struct stat *statbuf, void* matched)
static int file_action_grep(const char *filename, struct stat *statbuf, void* matched, int depth)
{
FILE *file = fopen(filename, "r");
if (file == NULL) {
@@ -315,7 +315,8 @@ static int grep_dir(const char *dir)
/* depthFirst= */ 1,
/* fileAction= */ file_action_grep,
/* dirAction= */ NULL,
/* userData= */ &matched);
/* userData= */ &matched,
/* depth= */ 0);
return matched;
}