iflags |= ITEM_REPORT_TIME;
if (!BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
iflags |= ITEM_REPORT_PERMS;
-- if (preserve_uid && am_root && F_OWNER(file) != sxp->st.st_uid)
+- if (preserve_uid && am_root && (uid_t)F_OWNER(file) != sxp->st.st_uid)
+ if (preserve_uid && am_root && !omit_changes
-+ && F_OWNER(file) != sxp->st.st_uid)
++ && (uid_t)F_OWNER(file) != sxp->st.st_uid)
iflags |= ITEM_REPORT_OWNER;
- if (preserve_gid && !(file->flags & FLAG_SKIP_GROUP)
-- && sxp->st.st_gid != F_GROUP(file))
+- && sxp->st.st_gid != (gid_t)F_GROUP(file))
+ if (preserve_gid && !omit_changes
-+ && !(file->FLAG_SKIP_GROUP) && sxp->st.st_gid != F_GROUP(file))
++ && !(file->flags & FLAG_SKIP_GROUP) && sxp->st.st_gid != (gid_t)F_GROUP(file))
iflags |= ITEM_REPORT_GROUP;
#ifdef SUPPORT_ACLS
if (preserve_acls && !S_ISLNK(file->mode)) {
updated = 1;
}
-- change_uid = am_root && preserve_uid && sxp->st.st_uid != F_OWNER(file);
-+ change_uid = am_root && preserve_uid && sxp->st.st_uid != F_OWNER(file)
+- change_uid = am_root && preserve_uid && sxp->st.st_uid != (uid_t)F_OWNER(file);
++ change_uid = am_root && preserve_uid && sxp->st.st_uid != (uid_t)F_OWNER(file)
+ && !(omit_dir_changes && S_ISDIR(sxp->st.st_mode));
change_gid = preserve_gid && !(file->flags & FLAG_SKIP_GROUP)
-- && sxp->st.st_gid != F_GROUP(file);
-+ && sxp->st.st_gid != F_GROUP(file)
+- && sxp->st.st_gid != (gid_t)F_GROUP(file);
++ && sxp->st.st_gid != (gid_t)F_GROUP(file)
+ && !(omit_dir_changes && S_ISDIR(sxp->st.st_mode));
#if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK
if (S_ISLNK(sxp->st.st_mode))