--- flist.c 12 Jun 2005 06:07:23 -0000 1.298 +++ flist.c 21 Jun 2005 16:10:27 -0000 @@ -52,6 +52,7 @@ extern int preserve_uid; extern int preserve_gid; extern int relative_paths; extern int implied_dirs; +extern int nodump_exclude; extern int copy_links; extern int copy_unsafe_links; extern int protocol_version; @@ -827,6 +828,12 @@ struct file_struct *make_file(char *fnam if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level)) return NULL; +#ifdef __FreeBSD__ + if (nodump_exclude && st.st_flags & UF_NODUMP) + return NULL; +#else +#error Need compatibility support for "--nodump-exclude" option! +#endif if (lp_ignore_nonreadable(module_id)) { #ifdef SUPPORT_LINKS --- options.c 19 May 2005 08:52:17 -0000 1.265 +++ options.c 21 Jun 2005 16:10:28 -0000 @@ -51,6 +51,7 @@ int preserve_times = 0; int omit_dir_times = 0; int update_only = 0; int cvs_exclude = 0; +int nodump_exclude = 0; int dry_run = 0; int do_xfers = 1; int ignore_times = 0; @@ -323,6 +324,7 @@ void usage(enum logcode F) rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); rprintf(F," -z, --compress compress file data during the transfer\n"); rprintf(F," -C, --cvs-exclude auto-ignore files the same way CVS does\n"); + rprintf(F," --nodump-exclude auto-ignore files that have \"nodump\" flag set\n"); rprintf(F," -f, --filter=RULE add a file-filtering RULE\n"); rprintf(F," -F same as --filter='dir-merge /.rsync-filter'\n"); rprintf(F," repeated: --filter='- .rsync-filter'\n"); @@ -398,6 +400,7 @@ static struct poptOption long_options[] {"dry-run", 'n', POPT_ARG_NONE, &dry_run, 0, 0, 0 }, {"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 }, {"cvs-exclude", 'C', POPT_ARG_NONE, &cvs_exclude, 0, 0, 0 }, + {"nodump-exclude", 0, POPT_ARG_NONE, &nodump_exclude, 0, 0, 0 }, {"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 }, {"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 }, {"dirs", 'd', POPT_ARG_VAL, &xfer_dirs, 2, 0, 0 },