./configure (optional if already run)
make
---- old/flist.c
-+++ new/flist.c
-@@ -80,6 +80,9 @@ extern int filesfrom_convert;
+diff --git a/flist.c b/flist.c
+--- a/flist.c
++++ b/flist.c
+@@ -81,6 +81,9 @@ extern int filesfrom_convert;
extern iconv_t ic_send, ic_recv;
#endif
#define PTR_SIZE (sizeof (struct file_struct *))
int io_error;
-@@ -600,6 +603,24 @@ static void send_file_entry(int f, struc
+@@ -606,6 +609,24 @@ static void send_file_entry(int f, struct file_struct *file, int ndx, int first_
stats.total_size += F_LENGTH(file);
}
static struct file_struct *recv_file_entry(struct file_list *flist,
int xflags, int f)
{
-@@ -668,6 +689,9 @@ static struct file_struct *recv_file_ent
+@@ -674,6 +695,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
}
#endif
clean_fname(thisname, 0);
if (sanitize_paths)
---- old/options.c
-+++ new/options.c
-@@ -181,6 +181,8 @@ int logfile_format_has_i = 0;
+diff --git a/options.c b/options.c
+--- a/options.c
++++ b/options.c
+@@ -182,6 +182,8 @@ int logfile_format_has_i = 0;
int logfile_format_has_o_or_i = 0;
int always_checksum = 0;
int list_only = 0;
#define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
char *batch_name = NULL;
-@@ -423,6 +425,7 @@ void usage(enum logcode F)
+@@ -425,6 +427,7 @@ void usage(enum logcode F)
#ifdef ICONV_OPTION
rprintf(F," --iconv=CONVERT_SPEC request charset conversion of filenames\n");
#endif
rprintf(F," -4, --ipv4 prefer IPv4\n");
rprintf(F," -6, --ipv6 prefer IPv6\n");
rprintf(F," --version print version number\n");
-@@ -609,6 +612,7 @@ static struct poptOption long_options[]
+@@ -612,6 +615,7 @@ static struct poptOption long_options[] = {
#ifdef ICONV_OPTION
{"iconv", 0, POPT_ARG_STRING, &iconv_opt, 0, 0, 0 },
#endif
{"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 },
{"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 },
{"8-bit-output", '8', POPT_ARG_NONE, &allow_8bit_chars, 0, 0, 0 },
-@@ -1620,6 +1624,31 @@ int parse_arguments(int *argc_p, const c
+@@ -1623,6 +1627,31 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
}
}
am_starting_up = 0;
return 1;
-@@ -1988,6 +2017,12 @@ void server_options(char **args, int *ar
+@@ -1991,6 +2020,12 @@ void server_options(char **args, int *argc_p)
else if (remove_source_files)
args[ac++] = "--remove-sent-files";
*argc_p = ac;
return;
---- old/rsync.yo
-+++ new/rsync.yo
-@@ -422,6 +422,7 @@ to the detailed description below for a
+diff --git a/rsync.yo b/rsync.yo
+--- a/rsync.yo
++++ b/rsync.yo
+@@ -423,6 +423,7 @@ to the detailed description below for a complete description. verb(
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
-@@ -2013,6 +2014,22 @@ specifying matching rules that can match
+@@ -2030,6 +2031,22 @@ specifying matching rules that can match on both sides of the transfer.
For instance, you can specify extra include/exclude rules if there are
filename differences on the two sides that need to be accounted for.