X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/26beb7861fbcc7abec92acfe3773f8154c39fe7a..e8432be95f6b01aaa6351658e12f708b07147042:/generator.c diff --git a/generator.c b/generator.c index b0744557..964b4037 100644 --- a/generator.c +++ b/generator.c @@ -323,8 +323,9 @@ void itemize(struct file_struct *file, int ndx, int statret, STRUCT_STAT *st, : S_ISDIR(file->mode) ? !omit_dir_times : !S_ISLNK(file->mode); - if ((iflags & (ITEM_TRANSFER|ITEM_LOCAL_CHANGE) && !keep_time) - || (keep_time && file->modtime != st->st_mtime)) + if ((iflags & (ITEM_TRANSFER|ITEM_LOCAL_CHANGE) && !keep_time + && (!(iflags & ITEM_XNAME_FOLLOWS) || *xname)) + || (keep_time && cmp_modtime(file->modtime, st->st_mtime) != 0)) iflags |= ITEM_REPORT_TIME; if (preserve_perms && file->mode != st->st_mode) iflags |= ITEM_REPORT_PERMS; @@ -528,7 +529,7 @@ static int find_fuzzy(struct file_struct *file, struct file_list *dirlist) name = fp->basename; if (fp->length == file->length - && fp->modtime == file->modtime) { + && cmp_modtime(fp->modtime, file->modtime) == 0) { if (verbose > 4) { rprintf(FINFO, "fuzzy size/modtime match for %s\n",