file->length = st.st_size;
file->mode = st.st_mode;
file->uid = st.st_uid;
---- orig/generator.c 2004-10-06 00:12:16
-+++ generator.c 2004-07-03 20:15:41
+--- orig/generator.c 2004-11-03 20:30:45
++++ generator.c 2004-11-03 23:02:12
@@ -92,7 +92,7 @@ static int skip_file(char *fname, struct
if (ignore_times)
return 0;
}
-@@ -482,7 +482,7 @@ static void recv_generator(char *fname,
+@@ -486,7 +486,7 @@ static void recv_generator(char *fname,
}
- if (update_only && fnamecmp == fname
+ if (update_only && fnamecmp_type == FNAMECMP_FNAME
- && cmp_modtime(st.st_mtime, file->modtime) > 0) {
+ && cmp_time(st.st_mtime, file->modtime) > 0) {
if (verbose > 1)
}
change_uid = am_root && preserve_uid && st->st_uid != file->uid;
---- orig/rsync.h 2004-10-09 03:21:56
+--- orig/rsync.h 2004-11-03 20:30:45
+++ rsync.h 2004-07-03 20:15:41
@@ -54,6 +54,7 @@
#define XMIT_HAS_IDEV_DATA (1<<9)
#define FULL_FLUSH 1
#define NORMAL_FLUSH 0
-@@ -429,6 +431,7 @@ struct file_struct {
+@@ -434,6 +436,7 @@ struct file_struct {
struct hlink *links;
} link_u;
time_t modtime;
if (am_sender) {
if (delete_excluded)
args[ac++] = "--delete-excluded";
---- orig/receiver.c 2004-09-21 09:40:27
-+++ receiver.c 2004-09-22 02:09:20
-@@ -42,8 +42,11 @@ extern char *compare_dest;
+--- orig/receiver.c 2004-11-03 20:30:45
++++ receiver.c 2004-11-03 23:10:06
+@@ -43,8 +43,11 @@ extern char *compare_dest;
extern int make_backups;
extern int do_progress;
extern char *backup_dir;
extern int cleanup_got_literal;
extern int module_id;
extern int ignore_errors;
-@@ -77,11 +80,14 @@ static void delete_one(char *fn, int is_
+@@ -78,11 +81,14 @@ static void delete_one(char *fn, int is_
}
}
}
-@@ -122,10 +128,11 @@ void delete_files(struct file_list *flis
- continue;
+@@ -124,11 +130,12 @@ void delete_files(struct file_list *flis
if (flist_find(flist,local_file_list->files[i]) < 0) {
char *f = f_name(local_file_list->files[i]);
-- if (make_backups && (backup_dir || !is_backup_file(f))) {
-- make_backup(f);
+ int mode = local_file_list->files[i]->mode;
+- if (make_backups && (backup_dir || !is_backup_file(f))
+ int backup_file = is_backup_file(f);
-+ if (make_backups && (delete_dir || !backup_file)) {
++ if (make_backups && (delete_dir || !backup_file)
+ && !S_ISDIR(mode)) {
+- make_backup(f);
+ safe_delete(f);
if (verbose) {
- rprintf(FINFO, "deleting %s\n",
+ rprintf(FINFO, "safe-deleting %s\n",
safe_fname(f));
}
- } else {
+ } else