Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Conditional symlink-checking code in unchanged_attrs() should be
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
530c274
..
db89199
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-517,6
+517,14
@@
static void do_delete_pass(void)
int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp)
{
int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp)
{
+#ifndef HAVE_LUTIMES
+ if (S_ISLNK(file->mode)) {
+ ;
+ } else
+#endif
+ if (preserve_times && cmp_time(sxp->st.st_mtime, file->modtime) != 0)
+ return 0;
+
if (preserve_perms && !BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
return 0;
if (preserve_perms && !BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
return 0;
@@
-1957,7
+1965,7
@@
void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
if (delete_during == 2 || !dir_tweaking) {
/* Skip directory touch-up. */
if (delete_during == 2 || !dir_tweaking) {
/* Skip directory touch-up. */
- } else if (first_flist->
ndx_start !
= 0)
+ } else if (first_flist->
parent_ndx >
= 0)
touch_up_dirs(dir_flist, first_flist->parent_ndx);
flist_free(first_flist); /* updates first_flist */
touch_up_dirs(dir_flist, first_flist->parent_ndx);
flist_free(first_flist); /* updates first_flist */
@@
-2032,7
+2040,7
@@
void generate_files(int f_out, const char *local_name)
}
#endif
}
#endif
- if (inc_recurse && cur_flist->
ndx_start
) {
+ if (inc_recurse && cur_flist->
parent_ndx >= 0
) {
struct file_struct *fp = dir_flist->files[cur_flist->parent_ndx];
f_name(fp, fbuf);
ndx = cur_flist->ndx_start - 1;
struct file_struct *fp = dir_flist->files[cur_flist->parent_ndx];
f_name(fp, fbuf);
ndx = cur_flist->ndx_start - 1;