From e5e85283a99a834bc495f29598cc3d138d7a9696 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 11 Nov 2006 05:09:14 +0000 Subject: [PATCH] Allow --max-delete=0 (zero used to be ignored). --- generator.c | 8 ++++---- options.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generator.c b/generator.c index 582ab797..c4e6ba23 100644 --- a/generator.c +++ b/generator.c @@ -125,7 +125,7 @@ static int delete_item(char *fname, int mode, int flags) char *p; if (!S_ISDIR(mode)) { - if (max_delete && ++deletion_count > max_delete) + if (max_delete >= 0 && ++deletion_count > max_delete) return 0; if (make_backups && (backup_dir || !is_backup_file(fname))) ok = make_backup(fname); @@ -146,7 +146,7 @@ static int delete_item(char *fname, int mode, int flags) } zap_dir = flags & DEL_FORCE_RECURSE || force_delete; - if ((max_delete && ++deletion_count > max_delete) + if ((max_delete >= 0 && ++deletion_count > max_delete) || (dry_run && zap_dir)) { ok = 0; errno = ENOTEMPTY; @@ -197,7 +197,7 @@ static int delete_item(char *fname, int mode, int flags) pop_local_filters(save_filters); - if (max_delete && ++deletion_count > max_delete) + if (max_delete >= 0 && ++deletion_count > max_delete) return 0; if (do_rmdir(fname) == 0) { @@ -1609,7 +1609,7 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) } recv_generator(NULL, NULL, 0, 0, 0, code, -1); - if (max_delete > 0 && deletion_count > max_delete) { + if (max_delete >= 0 && deletion_count > max_delete) { rprintf(FINFO, "Deletions stopped due to --max-delete limit (%d skipped)\n", deletion_count - max_delete); diff --git a/options.c b/options.c index 5fd29932..954719d6 100644 --- a/options.c +++ b/options.c @@ -106,7 +106,7 @@ size_t bwlimit_writemax = 0; int ignore_existing = 0; int ignore_non_existing = 0; int need_messages_from_generator = 0; -int max_delete = 0; +int max_delete = -1; OFF_T max_size = 0; OFF_T min_size = 0; int ignore_errors = 0; @@ -1614,7 +1614,7 @@ void server_options(char **args,int *argc) args[ac++] = arg; } - if (max_delete && am_sender) { + if (max_delete >= 0 && am_sender) { if (asprintf(&arg, "--max-delete=%d", max_delete) < 0) goto oom; args[ac++] = arg; -- 2.34.1