summaryrefslogtreecommitdiff
path: root/generator.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2010-08-26 08:50:05 -0700
committerWayne Davison <wayned@samba.org>2010-08-26 11:12:58 -0700
commit2624e005e2c2407c8e108230e6615d2aaba42617 (patch)
treeaefd03f05797d1b2dda9d2e27e1e64d92bdb79d6 /generator.c
parentc9bf436e5b80ad7d001773e3d750149c11f39411 (diff)
downloadrsync-2624e005e2c2407c8e108230e6615d2aaba42617.tar.gz
rsync-2624e005e2c2407c8e108230e6615d2aaba42617.tar.bz2
rsync-2624e005e2c2407c8e108230e6615d2aaba42617.zip
Add --omit-link-times and use CAN_SET_SYMLINK_TIMES less.
Diffstat (limited to 'generator.c')
-rw-r--r--generator.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/generator.c b/generator.c
index b12087fc..be36e63e 100644
--- a/generator.c
+++ b/generator.c
@@ -390,12 +390,9 @@ static void do_delete_pass(void)
int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp)
{
-#ifndef CAN_SET_SYMLINK_TIMES
- if (S_ISLNK(file->mode)) {
+ if (!(preserve_times & PRESERVE_LINK_TIMES) && S_ISLNK(file->mode)) {
;
- } else
-#endif
- if (preserve_times && cmp_time(sxp->st.st_mtime, file->modtime) != 0)
+ } else if (preserve_times && cmp_time(sxp->st.st_mtime, file->modtime) != 0)
return 0;
if (preserve_perms) {
@@ -437,12 +434,9 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre
{
if (statret >= 0) { /* A from-dest-dir statret can == 1! */
int keep_time = !preserve_times ? 0
- : S_ISDIR(file->mode) ? preserve_times > 1 :
-#ifdef CAN_SET_SYMLINK_TIMES
- 1;
-#else
- !S_ISLNK(file->mode);
-#endif
+ : S_ISDIR(file->mode) ? preserve_times & PRESERVE_DIR_TIMES
+ : S_ISLNK(file->mode) ? preserve_times & PRESERVE_LINK_TIMES
+ : 1;
if (S_ISREG(file->mode) && F_LENGTH(file) != sxp->st.st_size)
iflags |= ITEM_REPORT_SIZE;
@@ -2056,7 +2050,7 @@ void generate_files(int f_out, const char *local_name)
}
solo_file = local_name;
dir_tweaking = !(list_only || solo_file || dry_run);
- need_retouch_dir_times = preserve_times > 1;
+ need_retouch_dir_times = preserve_times & PRESERVE_DIR_TIMES;
loopchk_limit = allowed_lull ? allowed_lull * 5 : 200;
symlink_timeset_failed_flags = ITEM_REPORT_TIME
| (protocol_version >= 30 || !am_server ? ITEM_REPORT_TIMEFAIL : 0);