X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/e5bf3b58558733a233f598ffb580207b7977994d..2b967218eb530c649fe342faab4470a4ad4036d4:/generator.c diff --git a/generator.c b/generator.c index f4ecbbd1..b3a31f05 100644 --- a/generator.c +++ b/generator.c @@ -7,8 +7,9 @@ * Copyright (C) 2003-2007 Wayne Davison * * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3 as - * published by the Free Software Foundation. + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -1282,7 +1283,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, real_sx.st.st_dev = filesystem_dev; if (inc_recurse) { if (one_file_system) { - uint32 *devp = F_DIRDEV_P(file); + uint32 *devp = F_DIR_DEV_P(file); DEV_MAJOR(devp) = major(real_sx.st.st_dev); DEV_MINOR(devp) = minor(real_sx.st.st_dev); } @@ -1838,13 +1839,6 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo) maybe_flush_socket(1); } - if (delete_during == 2 || !dir_tweaking) { - /* Skip directory touch-up. */ - } else if (first_flist->ndx_start != 0) - touch_up_dirs(dir_flist, first_flist->parent_ndx); - else if (relative_paths && implied_dirs) - touch_up_dirs(first_flist, -1); - flist_free(first_flist); /* updates first_flist */ } } @@ -1915,11 +1909,11 @@ void generate_files(int f_out, const char *local_name) f_name(fp, fbuf); ndx = cur_flist->ndx_start - 1; recv_generator(fbuf, fp, ndx, itemizing, code, f_out); - if (delete_during) { + if (delete_during && dry_run < 2) { if (BITS_SETnUNSET(fp->flags, FLAG_XFER_DIR, FLAG_MISSING_DIR)) { dev_t dirdev; if (one_file_system) { - uint32 *devp = F_DIRDEV_P(fp); + uint32 *devp = F_DIR_DEV_P(fp); dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp)); } else dirdev = MAKEDEV(0, 0); @@ -2022,8 +2016,7 @@ void generate_files(int f_out, const char *local_name) if (delete_after && !solo_file && file_total > 0) do_delete_pass(); - if ((need_retouch_dir_perms || need_retouch_dir_times) - && dir_tweaking && (!inc_recurse || delete_during == 2)) + if ((need_retouch_dir_perms || need_retouch_dir_times) && dir_tweaking) touch_up_dirs(dir_flist, -1); if (max_delete >= 0 && deletion_count > max_delete) {