summaryrefslogtreecommitdiff
path: root/receiver.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-01-23 11:43:04 +0000
committerAndrew Tridgell <tridge@samba.org>2000-01-23 11:43:04 +0000
commit0b73ca12fa018b3f6e45cc54912423930b3d6758 (patch)
treec345a0e0edc013099154eb6f88a323e8f04d396d /receiver.c
parent03e2d0e329575f0ca6f7843e9ceae1cd5341902b (diff)
downloadrsync-0b73ca12fa018b3f6e45cc54912423930b3d6758.tar.gz
added --max-delete option
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/receiver.c b/receiver.c
index 3cd7f9e0..7cc9a81d 100644
--- a/receiver.c
+++ b/receiver.c
@@ -43,7 +43,6 @@ static struct delete_list {
} *delete_list;
static int dlist_len, dlist_alloc_len;
-
/* yuck! This function wouldn't have been necessary if I had the sorting
algorithm right. Unfortunately fixing the sorting algorithm would introduce
a backward incompatibility as file list indexes are sent over the link.
@@ -110,6 +109,8 @@ static void delete_files(struct file_list *flist)
int i, j;
char *name;
extern int module_id;
+ extern int max_delete;
+ static int deletion_count;
if (cvs_exclude)
add_cvs_excludes();
@@ -137,6 +138,7 @@ static void delete_files(struct file_list *flist)
rprintf(FINFO,"deleting in %s\n", name);
for (i=local_file_list->count-1;i>=0;i--) {
+ if (max_delete && deletion_count > max_delete) break;
if (!local_file_list->files[i]->basename) continue;
if (remote_version < 19 &&
S_ISDIR(local_file_list->files[i]->mode))
@@ -148,6 +150,7 @@ static void delete_files(struct file_list *flist)
(strcmp(f+k,backup_suffix) != 0))) {
(void) make_backup(f);
} else {
+ deletion_count++;
delete_one(local_file_list->files[i]);
}
}