diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-01-23 11:43:04 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-01-23 11:43:04 +0000 |
commit | 0b73ca12fa018b3f6e45cc54912423930b3d6758 (patch) | |
tree | c345a0e0edc013099154eb6f88a323e8f04d396d /receiver.c | |
parent | 03e2d0e329575f0ca6f7843e9ceae1cd5341902b (diff) | |
download | rsync-0b73ca12fa018b3f6e45cc54912423930b3d6758.tar.gz |
added --max-delete option
Diffstat (limited to 'receiver.c')
-rw-r--r-- | receiver.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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]); } } |