a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: 93bdc6478e8d8a392b318f3986f9799ac3203d0e
+based-on: 40afd365cc8ca968fd16e161d24df5b8a8a520cc
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
static void send_directory(int f, struct file_list *flist,
char *fbuf, int len, int flags);
-@@ -2421,6 +2463,25 @@ struct file_list *recv_file_list(int f)
+@@ -2427,6 +2469,25 @@ struct file_list *recv_file_list(int f)
flist_sort_and_clean(flist, relative_paths);
static int phase = 0;
static int dflt_perms;
-@@ -1557,9 +1706,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1558,9 +1707,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
else if (delete_during && f_out != -1 && !phase
&& !(file->flags & FLAG_MISSING_DIR)) {
change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
}
goto cleanup;
-@@ -1843,8 +1995,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1844,8 +1996,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
#endif
rsyserr(FERROR_XFER, stat_errno, "recv_generator: failed to stat %s",
full_fname(fname));
goto cleanup;
-@@ -2247,6 +2405,12 @@ void generate_files(int f_out, const char *local_name)
+@@ -2254,6 +2412,12 @@ void generate_files(int f_out, const char *local_name)
if (verbose > 2)
rprintf(FINFO, "generator starting pid=%ld\n", (long)getpid());
if (delete_before && !solo_file && cur_flist->used > 0)
do_delete_pass();
if (delete_during == 2) {
-@@ -2257,7 +2421,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2264,7 +2428,7 @@ void generate_files(int f_out, const char *local_name)
}
do_progress = 0;
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -2299,7 +2463,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2306,7 +2470,7 @@ void generate_files(int f_out, const char *local_name)
dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
} else
dirdev = MAKEDEV(0, 0);
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
-@@ -2346,7 +2510,21 @@ void generate_files(int f_out, const char *local_name)
+@@ -2353,7 +2517,21 @@ void generate_files(int f_out, const char *local_name)
} while ((cur_flist = cur_flist->next) != NULL);
if (delete_during)
diff --git a/rsync.yo b/rsync.yo
--- a/rsync.yo
+++ b/rsync.yo
-@@ -389,6 +389,7 @@ to the detailed description below for a complete description. verb(
+@@ -402,6 +402,7 @@ to the detailed description below for a complete description. verb(
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1561,6 +1562,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
+@@ -1590,6 +1591,21 @@ Note that the use of the bf(--delete) option might get rid of any potential
fuzzy-match files, so either use bf(--delete-after) or specify some
filename exclusions if you need to prevent this.