1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# $FreeBSD$
--- a/patches/detect-renamed.diff 2013-09-29 07:02:08.000000000 +0400
+++ b/patches/detect-renamed.diff 2013-10-23 14:56:21.073464928 +0400
@@ -42,15 +42,15 @@
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
-@@ -43,6 +43,7 @@ extern int checksum_seed;
+@@ -39,6 +39,7 @@
+ extern int fuzzy_basis;
+ extern int read_batch;
+ extern int delay_updates;
++extern int detect_renamed;
+ extern int checksum_seed;
extern int basis_dir_cnt;
extern int prune_empty_dirs;
- extern int protocol_version;
-+extern int detect_renamed;
- extern int protect_args;
- extern int preserve_uid;
- extern int preserve_gid;
-@@ -123,6 +124,7 @@ void set_allow_inc_recurse(void)
+@@ -125,6 +126,7 @@
allow_inc_recurse = 0;
else if (!am_sender
&& (delete_before || delete_after
@@ -61,15 +61,15 @@
diff --git a/delete.c b/delete.c
--- a/delete.c
+++ b/delete.c
-@@ -25,6 +25,7 @@
+@@ -23,6 +23,7 @@
+ #include "rsync.h"
+
extern int am_root;
++extern int detect_renamed;
extern int make_backups;
extern int max_delete;
-+extern int detect_renamed;
- extern char *backup_dir;
- extern char *backup_suffix;
- extern int backup_suffix_len;
-@@ -44,6 +45,8 @@ static inline int is_backup_file(char *fn)
+ extern int force_change;
+@@ -45,6 +46,8 @@
* its contents, otherwise just checks for content. Returns DR_SUCCESS or
* DR_NOT_EMPTY. Note that fname must point to a MAXPATHLEN buffer! (The
* buffer is used for recursion, but returned unchanged.)
@@ -78,7 +78,7 @@
*/
static enum delret delete_dir_contents(char *fname, uint16 flags)
{
-@@ -63,7 +66,9 @@ static enum delret delete_dir_contents(char *fname, uint16 flags)
+@@ -64,7 +67,9 @@
save_filters = push_local_filters(fname, dlen);
non_perishable_cnt = 0;
@@ -88,7 +88,7 @@
ret = non_perishable_cnt ? DR_NOT_EMPTY : DR_SUCCESS;
if (!dirlist->used)
-@@ -103,7 +108,8 @@ static enum delret delete_dir_contents(char *fname, uint16 flags)
+@@ -108,7 +113,8 @@
if (S_ISDIR(fp->mode)) {
if (delete_dir_contents(fname, flags | DEL_RECURSE) != DR_SUCCESS)
ret = DR_NOT_EMPTY;
@@ -98,7 +98,7 @@
if (delete_item(fname, fp->mode, flags) != DR_SUCCESS)
ret = DR_NOT_EMPTY;
}
-@@ -126,6 +132,8 @@ static enum delret delete_dir_contents(char *fname, uint16 flags)
+@@ -131,6 +137,8 @@
*
* Note that fbuf must point to a MAXPATHLEN buffer if the mode indicates it's
* a directory! (The buffer is used for recursion, but returned unchanged.)
@@ -775,7 +775,7 @@
diff -up a/proto.h b/proto.h
--- a/proto.h
+++ b/proto.h
-@@ -101,6 +101,7 @@ int f_name_has_prefix(const struct file_
+@@ -101,6 +101,7 @@
char *f_name_buf(void);
char *f_name(const struct file_struct *f, char *fbuf);
struct file_list *get_dirlist(char *dirname, int dlen, int flags);
@@ -783,16 +783,16 @@
int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp);
void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statret,
stat_x *sxp, int32 iflags, uchar fnamecmp_type,
-@@ -353,7 +354,7 @@ void set_blocking(int fd);
+@@ -356,7 +357,7 @@
int fd_pair(int fd[2]);
void print_child_argv(const char *prefix, char **cmd);
- int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode);
+ int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode, uint32 fileflags);
-int make_path(char *fname, int flags);
+int make_path(char *fname, mode_t mode, int flags);
int full_write(int desc, const char *ptr, size_t len);
int copy_file(const char *source, const char *dest, int ofd, mode_t mode);
int robust_unlink(const char *fname);
-@@ -373,6 +374,8 @@ char *sanitize_path(char *dest, const ch
+@@ -376,6 +377,8 @@
int flags);
int change_dir(const char *dir, int set_path_only);
char *normalize_path(char *path, BOOL force_newbuf, unsigned int *len_ptr);
|