Note that you'll need to run 'make proto' after applying this patch.
---- orig/Makefile.in 2004-10-14 17:11:40
+--- orig/Makefile.in 2004-11-03 11:56:03
+++ Makefile.in 2004-07-03 20:18:02
@@ -35,7 +35,7 @@ OBJS1=rsync.o generator.o receiver.o cle
main.o checksum.o match.o syscall.o log.o backup.o
+ if (verbose > 2)
+ rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest);
+}
---- orig/generator.c 2004-10-06 00:12:16
+--- orig/generator.c 2004-11-27 17:53:24
+++ generator.c 2004-07-03 20:18:02
-@@ -252,6 +252,12 @@ static void generate_and_send_sums(int f
+@@ -255,6 +255,12 @@ static void generate_and_send_sums(int f
*
* @note This comment was added later by mbp who was trying to work it
* out. It might be wrong.
+ * reporting to the sender.
*/
static void recv_generator(char *fname, struct file_struct *file, int i,
- int f_out)
+ int f_out, int f_out_name)
--- orig/log.c 2004-09-07 19:54:51
+++ log.c 2004-07-03 20:18:02
@@ -57,6 +57,7 @@ struct {
{ RERR_SIGNAL , "received SIGUSR1 or SIGINT" },
{ RERR_WAITCHILD , "some error returned by waitpid()" },
{ RERR_MALLOC , "error allocating core memory buffers" },
---- orig/main.c 2004-10-08 20:16:26
+--- orig/main.c 2004-11-27 17:53:24
+++ main.c 2004-07-22 00:31:47
-@@ -332,7 +332,7 @@ static pid_t do_cmd(char *cmd, char *mac
+@@ -333,7 +333,7 @@ static pid_t do_cmd(char *cmd, char *mac
whole_file = 1;
ret = local_child(argc, args, f_in, f_out, child_main);
} else
if (dir)
free(dir);
---- orig/options.c 2004-10-14 17:11:40
-+++ options.c 2004-10-14 17:19:47
-@@ -129,6 +129,7 @@ char *backup_dir = NULL;
- char backup_dir_buf[MAXPATHLEN];
+--- orig/options.c 2004-11-27 17:53:24
++++ options.c 2004-11-27 18:09:09
+@@ -132,6 +132,7 @@ char backup_dir_buf[MAXPATHLEN];
int rsync_port = RSYNC_PORT;
+ int copy_dest = 0;
int link_dest = 0;
+char *fname_convert_cmd = NULL;
int verbose = 0;
int quiet = 0;
-@@ -280,6 +281,7 @@ void usage(enum logcode F)
- rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n");
- rprintf(F," --link-dest=DIR create hardlinks to DIR for unchanged files\n");
+@@ -289,6 +290,7 @@ void usage(enum logcode F)
+ rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n");
+ rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n");
rprintf(F," -P equivalent to --partial --progress\n");
+ rprintf(F," --fname-convert=CMD invoke CMD for filename conversion\n");
rprintf(F," -z, --compress compress file data\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
rprintf(F," --exclude=PATTERN exclude files matching PATTERN\n");
-@@ -371,6 +373,7 @@ static struct poptOption long_options[]
- {"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
- {"compare-dest", 0, POPT_ARG_STRING, &compare_dest, 0, 0, 0 },
- {"link-dest", 0, POPT_ARG_STRING, &compare_dest, OPT_LINK_DEST, 0, 0 },
+@@ -383,6 +385,7 @@ static struct poptOption long_options[]
+ {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
+ {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
+ {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
+ {"fname-convert", 0, POPT_ARG_STRING, &fname_convert_cmd, 0, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },