From 8f0bc80774db981566701f1ef6521ba7e0422bbe Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Mon, 28 Sep 2026 11:48:19 +0200 Subject: [PATCH] Preserve .snapraidignore candidates during array recovery search with nohidden --- cmdline/search.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cmdline/search.c b/cmdline/search.c index 822bdbe3..bc4fdcdd 100644 --- a/cmdline/search.c +++ b/cmdline/search.c @@ -202,8 +202,10 @@ static void search_dir(struct snapraid_state* state, struct snapraid_disk* disk, /* exclude hidden files even before calling lstat() */ if (disk != 0 && filter_hidden(state->filter_hidden, dd) != 0) { - msg_verbose("Excluding hidden '%s'\n", path_next); - continue; + if (pathcmp(".snapraidignore", dd->d_name) != 0) { + msg_verbose("Excluding hidden '%s'\n", path_next); + continue; + } } /* exclude content files even before calling lstat() */ @@ -248,10 +250,12 @@ static void search_dir(struct snapraid_state* state, struct snapraid_disk* disk, #endif if (S_ISREG(st.st_mode)) { - if (disk == 0 || filter_path(&state->filterlist, &reason, disk->name, sub_next) == 0) { + if (disk == 0 + || pathcmp(".snapraidignore", name) == 0 + || filter_path(&state->filterlist, &reason, disk->name, sub_next) == 0) { search_file(state, path_next, st.st_size, st.st_mtime, STAT_NSEC(&st)); } else { - msg_verbose("Excluding link '%s' for rule '%s'\n", path_next, filter_type(reason, out, sizeof(out))); + msg_verbose("Excluding file '%s' for rule '%s'\n", path_next, filter_type(reason, out, sizeof(out))); } } else if (S_ISDIR(st.st_mode)) { if (disk == 0 || filter_subdir(&state->filterlist, &reason, disk->name, sub_next) == 0) {