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
Separate the dirs from the files in xattrs.text.
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
c9be424
..
17ce76a
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-489,7
+489,9
@@
int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
set_xattr(fname, file, fnamecmp, sxp);
#endif
set_xattr(fname, file, fnamecmp, sxp);
#endif
- if (!preserve_times || (S_ISDIR(sxp->st.st_mode) && preserve_times == 1))
+ if (!preserve_times
+ || (!(preserve_times & PRESERVE_DIR_TIMES) && S_ISDIR(sxp->st.st_mode))
+ || (!(preserve_times & PRESERVE_LINK_TIMES) && S_ISLNK(sxp->st.st_mode)))
flags |= ATTRS_SKIP_MTIME;
if (!(flags & ATTRS_SKIP_MTIME)
&& cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
flags |= ATTRS_SKIP_MTIME;
if (!(flags & ATTRS_SKIP_MTIME)
&& cmp_time(sxp->st.st_mtime, file->modtime) != 0) {
@@
-508,7
+510,7
@@
int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
change_uid = am_root && uid_ndx && sxp->st.st_uid != (uid_t)F_OWNER(file);
change_gid = gid_ndx && !(file->flags & FLAG_SKIP_GROUP)
&& sxp->st.st_gid != (gid_t)F_GROUP(file);
change_uid = am_root && uid_ndx && sxp->st.st_uid != (uid_t)F_OWNER(file);
change_gid = gid_ndx && !(file->flags & FLAG_SKIP_GROUP)
&& sxp->st.st_gid != (gid_t)F_GROUP(file);
-#if
!defined HAVE_LCHOWN && !defined CHOWN_MODIFIES
_SYMLINK
+#if
ndef CAN_CHOWN
_SYMLINK
if (S_ISLNK(sxp->st.st_mode)) {
;
} else
if (S_ISLNK(sxp->st.st_mode)) {
;
} else