---- orig/receiver.c 2004-07-03 20:08:07
-+++ receiver.c 2004-07-03 20:09:05
-@@ -36,7 +36,6 @@ extern int preserve_perms;
- extern int cvs_exclude;
- extern int io_error;
- extern char *tmpdir;
--extern char *compare_dest;
- extern int make_backups;
- extern int do_progress;
- extern char *backup_dir;
---- orig/rsync.yo 2004-06-17 06:32:00
-+++ rsync.yo 2004-07-03 19:27:25
-@@ -325,6 +325,7 @@ verb(
- -T --temp-dir=DIR create temporary files in directory DIR
+--- orig/receiver.c 2005-01-17 23:11:45
++++ receiver.c 2005-01-15 21:21:02
+@@ -324,6 +324,27 @@ static int receive_data(int f_in, char *
+ }
+
+
++static void read_gen_name(int fd, char *buf)
++{
++ int len = read_byte(fd);
++ if (len & 0x80) {
++#if MAXPATHLEN > 32767
++ uchar lenbuf[2];
++ read_buf(fd, (char *)lenbuf, 2);
++ len = (len & ~0x80) * 0x10000 + lenbuf[0] * 0x100 + lenbuf[1];
++#else
++ len = (len & ~0x80) * 0x100 + read_byte(fd);
++#endif
++ }
++ if (len >= MAXPATHLEN) {
++ rprintf(FERROR, "bogus data on generator name pipe\n");
++ exit_cleanup(RERR_PROTOCOL);
++ }
++
++ read_sbuf(fd, buf, len);
++}
++
++
+ static void discard_receive_data(int f_in, OFF_T length)
+ {
+ receive_data(f_in, NULL, -1, 0, NULL, -1, length);
+@@ -454,6 +475,10 @@ int recv_files(int f_in, struct file_lis
+ case FNAMECMP_BACKUP:
+ fnamecmp = get_backup_name(fname);
+ break;
++ case FNAMECMP_FUZZY:
++ read_gen_name(f_in_name, fnamecmpbuf);
++ fnamecmp = fnamecmpbuf;
++ break;
+ default:
+ if (j >= basis_dir_cnt) {
+ rprintf(FERROR,
+--- orig/rsync.h 2005-01-17 23:11:45
++++ rsync.h 2005-01-15 21:24:09
+@@ -128,6 +128,7 @@
+ #define FNAMECMP_FNAME 0x80
+ #define FNAMECMP_PARTIAL_DIR 0x81
+ #define FNAMECMP_BACKUP 0x82
++#define FNAMECMP_FUZZY 0x83
+
+
+ /* Log-message categories. FLOG is only used on the daemon side to
+--- orig/rsync.yo 2005-01-17 23:11:46
++++ rsync.yo 2005-01-15 21:48:52
+@@ -358,6 +358,7 @@ verb(