unsigned int keep_oldest:1;
unsigned int prio_trees:1;
unsigned int dry_run:1;
+ unsigned int list_duplicates:1;
+ char line_delim;
+ unsigned int within_mount:1;
uintmax_t min_size;
uintmax_t max_size;
size_t io_size;
int included;
int excluded;
- if (handle_interrupt())
- return 1;
+ handle_interrupt();
if (typeflag == FTW_DNR || typeflag == FTW_NS)
warn(_("cannot read %s"), fpath);
+ #ifdef USE_SKIP_SUBTREE
+ if (opts.exclude_subtree
+ && typeflag == FTW_D
+ && match_any_regex(opts.exclude_subtree, fpath)) {
+ jlog(JLOG_VERBOSE1,
+ _("Skipped (excluded subtree) %s"), fpath);
+ return FTW_SKIP_SUBTREE;
+ }
+ #endif
if (typeflag != FTW_F || !S_ISREG(sb->st_mode))
return 0;
{
enum {
OPT_REFLINK = CHAR_MAX + 1,
- OPT_SKIP_RELINKS
+ OPT_SKIP_RELINKS,
+ OPT_EXCLUDE_SUBTREE,
+ OPT_MOUNT
};
- static const char optstr[] = "VhvndfpotXcmMFOx:y:i:r:S:s:b:q";
+ static const char optstr[] = "VhvndfpotXcmMFOlzx:y:i:r:S:s:b:q";
static const struct option long_options[] = {
{"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, 'h'},