X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/c0685c05f871261a0adb66cc22b3e0d50717a648..4b1553e2d4c6d2df6e7ae327966ccea7b0dc5ca8:/generator.c diff --git a/generator.c b/generator.c index 24435ea6..f364eefd 100644 --- 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) { +#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; @@ -895,9 +903,6 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx, case 2: if (!unchanged_attrs(cmpbuf, file, sxp)) continue; - if (always_checksum > 0 && preserve_times - && cmp_time(sxp->st.st_mtime, file->modtime)) - continue; best_match = j; match_level = 3; break; @@ -2027,14 +2032,8 @@ void generate_files(int f_out, const char *local_name) do { #ifdef SUPPORT_HARD_LINKS if (preserve_hard_links && inc_recurse) { - while (!flist_eof) { - int cnt = first_flist->prev - ? first_flist->prev->ndx_end - first_flist->ndx_start + 1 - : first_flist->ndx_end - first_flist->ndx_start + 1; - if (cnt >= FILECNT_LOOKAHEAD/2) - break; + while (!flist_eof && file_total < FILECNT_LOOKAHEAD/2) wait_for_receiver(); - } } #endif