X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0fddbd8a09b69f8f96dba770b9e313c5fc2fa895..d5833800a8d14bf8b57002e837ce69f3adbae694:/generator.c diff --git a/generator.c b/generator.c index a98ba9a0..43bc4113 100644 --- a/generator.c +++ b/generator.c @@ -248,7 +248,7 @@ static enum delret delete_dir_contents(char *fname, int flags) continue; } - strlcpy(p, F_BASENAME(fp), remainder); + strlcpy(p, fp->basename, remainder); /* Save stack by recursing to ourself directly. */ if (S_ISDIR(fp->mode) && delete_dir_contents(fname, flags | DEL_RECURSE) != DR_SUCCESS) @@ -520,8 +520,7 @@ static void do_delete_pass(struct file_list *flist) int unchanged_attrs(struct file_struct *file, STRUCT_STAT *st) { - if (preserve_perms - && (unsigned)(st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS)) + if (preserve_perms && !BITS_EQUAL(st->st_mode, file->mode, CHMOD_BITS)) return 0; if (am_root && preserve_uid && st->st_uid != F_UID(file)) @@ -548,7 +547,7 @@ void itemize(struct file_struct *file, int ndx, int statret, STRUCT_STAT *st, && (!(iflags & ITEM_XNAME_FOLLOWS) || *xname)) || (keep_time && cmp_time(file->modtime, st->st_mtime) != 0)) iflags |= ITEM_REPORT_TIME; - if ((unsigned)(st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS)) + if (!BITS_EQUAL(st->st_mode, file->mode, CHMOD_BITS)) iflags |= ITEM_REPORT_PERMS; if (preserve_uid && am_root && F_UID(file) != st->st_uid) iflags |= ITEM_REPORT_OWNER; @@ -737,7 +736,7 @@ static void generate_and_send_sums(int fd, OFF_T len, int f_out, int f_copy) static int find_fuzzy(struct file_struct *file, struct file_list *dirlist) { int fname_len, fname_suf_len; - const char *fname_suf, *fname = F_BASENAME(file); + const char *fname_suf, *fname = file->basename; uint32 lowest_dist = 25 << 16; /* ignore a distance greater than 25 */ int j, lowest_j = -1; @@ -753,7 +752,7 @@ static int find_fuzzy(struct file_struct *file, struct file_list *dirlist) if (!S_ISREG(fp->mode) || !F_LENGTH(fp) || fp->flags & FLAG_SENT) continue; - name = F_BASENAME(fp); + name = fp->basename; if (F_LENGTH(fp) == F_LENGTH(file) && cmp_time(fp->modtime, file->modtime) == 0) { @@ -1239,7 +1238,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } #ifdef SUPPORT_HARD_LINKS - if (preserve_hard_links && F_NOT_HLINK_FIRST(file) + if (preserve_hard_links && F_HLINK_NOT_FIRST(file) && hard_link_check(file, ndx, fname, statret, &st, itemizing, code)) return; #endif @@ -1298,7 +1297,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, statret = 1; } #ifdef SUPPORT_HARD_LINKS - if (preserve_hard_links && F_NOT_HLINK_LAST(file)) + if (preserve_hard_links && F_HLINK_NOT_LAST(file)) return; #endif if (do_symlink(sl, fname) != 0) { @@ -1342,7 +1341,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, t = "special file"; } if (statret == 0 - && (unsigned)(st.st_mode & ~CHMOD_BITS) == (file->mode & ~CHMOD_BITS) + && BITS_EQUAL(st.st_mode, file->mode, _S_IFMT) && st.st_rdev == rdev) { /* The device or special file is identical. */ if (itemizing) @@ -1375,7 +1374,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, statret = 1; } #ifdef SUPPORT_HARD_LINKS - if (preserve_hard_links && F_NOT_HLINK_LAST(file)) + if (preserve_hard_links && F_HLINK_NOT_LAST(file)) return; #endif if (verbose > 2) { @@ -1495,7 +1494,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, if (statret != 0) { #ifdef SUPPORT_HARD_LINKS - if (preserve_hard_links && F_NOT_HLINK_LAST(file)) + if (preserve_hard_links && F_HLINK_NOT_LAST(file)) return; #endif if (stat_errno == ENOENT) @@ -1558,7 +1557,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, pretend_missing: /* pretend the file didn't exist */ #ifdef SUPPORT_HARD_LINKS - if (preserve_hard_links && F_NOT_HLINK_LAST(file)) + if (preserve_hard_links && F_HLINK_NOT_LAST(file)) return; #endif statret = real_ret = -1; @@ -1617,7 +1616,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, if (fnamecmp_type == FNAMECMP_FUZZY) iflags |= ITEM_XNAME_FOLLOWS; itemize(file, -1, real_ret, &real_st, iflags, fnamecmp_type, - fuzzy_file ? F_BASENAME(fuzzy_file) : NULL); + fuzzy_file ? fuzzy_file->basename : NULL); } if (!do_xfers) {