Fixed failing hunks.
[rsync/rsync-patches.git] / fuzzy.diff
index 00d6969..951c62d 100644 (file)
@@ -12,9 +12,9 @@ test suite, but otherwise UNTESTED.]
 --
   Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
 
---- Makefile.in        10 Feb 2004 17:06:11 -0000      1.98
-+++ Makefile.in        27 Feb 2004 08:57:09 -0000
-@@ -32,7 +32,7 @@
+--- Makefile.in        15 May 2004 00:48:11 -0000      1.101
++++ Makefile.in        15 May 2004 20:47:12 -0000
+@@ -32,7 +32,7 @@ ZLIBOBJ=zlib/deflate.o zlib/infblock.o z
        zlib/inflate.o zlib/inftrees.o zlib/infutil.o zlib/trees.o \
        zlib/zutil.o zlib/adler32.o
  OBJS1=rsync.o generator.o receiver.o cleanup.o sender.o exclude.o util.o \
@@ -23,23 +23,17 @@ test suite, but otherwise UNTESTED.]
  OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \
        fileio.o batch.o clientname.o
  OBJS3=progress.o pipe.o
---- generator.c        27 Feb 2004 08:03:49 -0000      1.76
-+++ generator.c        27 Feb 2004 08:57:09 -0000
-@@ -43,10 +43,12 @@
- extern int always_checksum;
- extern char *compare_dest;
- extern int link_dest;
+--- generator.c        15 May 2004 19:31:10 -0000      1.83
++++ generator.c        15 May 2004 20:47:12 -0000
+@@ -51,6 +51,7 @@ extern int list_only;
+ extern int only_existing;
+ extern int orig_umask;
+ extern int safe_symlinks;
 +extern int fuzzy;
  
  
  /* choose whether to skip a particular file */
--static int skip_file(char *fname, struct file_struct *file, STRUCT_STAT *st)
-+static int skip_file(char *fname, struct file_struct *file,
-+                   const STRUCT_STAT *st)
- {
-       if (st->st_size != file->length) {
-               return 0;
-@@ -252,7 +254,62 @@
+@@ -256,7 +257,61 @@ static void generate_and_send_sums(struc
        }
  }
  
@@ -48,7 +42,7 @@ test suite, but otherwise UNTESTED.]
 +                        STRUCT_STAT *st)
 +{
 +      int fd = -1;
++
 +      if (statret == 0) {
 +              if (S_ISREG(st->st_mode)) {
 +                      if (update_only
@@ -58,13 +52,13 @@ test suite, but otherwise UNTESTED.]
 +                              return -2;
 +                      }
 +                      if (skip_file(fname, file, st)) {
-+                              set_perms(fname, file, st, 1);
++                              set_perms(fname, file, st, PERMS_REPORT);
 +                              return -2;
 +                      }
 +                      fd = do_open(fname, O_RDONLY, 0);
 +                      if (fd == -1) {
-+                              rprintf(FERROR, "failed to open %s, continuing : %s\n",
-+                                  full_fname(fname), strerror(errno));
++                              rsyserr(FERROR, errno, "failed to open %s, continuing",
++                                  full_fname(fname));
 +                              return -1;
 +                      }
 +                      return fd;
@@ -85,15 +79,14 @@ test suite, but otherwise UNTESTED.]
 +
 +      if (fd == -1 && compare_dest != NULL)
 +              fd = open_alternate_base_comparedir(fname);
-+
 +      if (fd == -1 && fuzzy)
 +              fd = open_alternate_base_fuzzy(fname);
 +
 +      /* Update stat to understand size */
 +      if (fd != -1) {
 +              if (do_fstat(fd, st) != 0) {
-+                      rprintf(FERROR, "fstat %s : %s\n",
-+                          full_fname(fname), strerror(errno));
++                      rsyserr(FERROR, errno, "fstat %s", full_fname(fname));
 +              }
 +      }
 +
@@ -102,17 +95,16 @@ test suite, but otherwise UNTESTED.]
  
  /**
   * Acts on file number @p i from @p flist, whose name is @p fname.
-@@ -268,9 +325,6 @@ void recv_generator(char *fname, struct 
+@@ -272,8 +327,6 @@ void recv_generator(char *fname, struct 
        STRUCT_STAT st;
        struct map_struct *mapbuf;
        int statret;
 -      char *fnamecmp;
 -      char fnamecmpbuf[MAXPATHLEN];
--      extern char *compare_dest;
-       extern int list_only;
-       extern int only_existing;
-       extern int orig_umask;
-@@ -397,108 +451,38 @@ void recv_generator(char *fname, struct 
+       if (list_only)
+               return;
+@@ -400,107 +453,39 @@ void recv_generator(char *fname, struct 
        }
  #endif
  
@@ -139,9 +131,8 @@ test suite, but otherwise UNTESTED.]
 -              else if (link_dest && !dry_run) {
 -                      if (do_link(fnamecmpbuf, fname) != 0) {
 -                              if (verbose > 0) {
--                                      rprintf(FINFO,"link %s => %s : %s\n",
--                                              fnamecmpbuf, fname,
--                                              strerror(errno));
+-                                      rsyserr(FINFO, errno, "link %s => %s",
+-                                              fnamecmpbuf, fname);
 -                              }
 -                      }
 -                      fnamecmp = fnamecmpbuf;
@@ -160,12 +151,12 @@ test suite, but otherwise UNTESTED.]
 -              } else if (verbose > 1) {
 +      /* Failed to stat for some reason besides "not found". */
 +      if (statret == -1 && errno != ENOENT) {
-+              if (verbose > 1)
-                       rprintf(FERROR,
--                              "recv_generator: failed to open %s: %s\n",
-+                              "recv_generator failed to stat %s: %s\n",
-                               full_fname(fname), strerror(errno));
--              }
++              if (verbose > 1) {
+                       rsyserr(FERROR, errno,
+-                              "recv_generator: failed to open %s",
++                              "recv_generator failed to stat %s",
+                               full_fname(fname));
+               }
                return;
        }
  
@@ -179,14 +170,14 @@ test suite, but otherwise UNTESTED.]
 -                      return;
 -              write_int(f_out,i);
 -              if (!dry_run) write_sum_head(f_out, NULL);
-+      if ((fd = open_base_file(file, fname, statret, &st)) == -2)
-               return;
+-              return;
 -      }
 -
 -      if (opt_ignore_existing && fnamecmp == fname) {
 -              if (verbose > 1)
 -                      rprintf(FINFO,"%s exists\n",fname);
--              return;
++      if ((fd = open_base_file(file, fname, statret, &st)) == -2)
+               return;
 -      }
  
 -      if (update_only && cmp_modtime(st.st_mtime,file->modtime)>0 && fnamecmp == fname) {
@@ -200,7 +191,7 @@ test suite, but otherwise UNTESTED.]
  
 -      if (skip_file(fname, file, &st)) {
 -              if (fnamecmp == fname)
--                      set_perms(fname,file,&st,1);
+-                      set_perms(fname, file, &st, PERMS_REPORT);
 -              return;
 -      }
 -
@@ -219,8 +210,8 @@ test suite, but otherwise UNTESTED.]
 -      fd = do_open(fnamecmp, O_RDONLY, 0);
 -
        if (fd == -1) {
--              rprintf(FERROR, "failed to open %s, continuing: %s\n",
--                      full_fname(fnamecmp), strerror(errno));
+-              rsyserr(FERROR, errno, "failed to open %s, continuing",
+-                      full_fname(fnamecmp));
 -              /* pretend the file didn't exist */
 +              /* the file didn't exist, or we can pretend it doesn't */
                if (preserve_hard_links && hard_link_check(file, HL_SKIP))
@@ -241,7 +232,7 @@ test suite, but otherwise UNTESTED.]
                return;
        }
  
-@@ -508,7 +492,7 @@ void recv_generator(char *fname, struct 
+@@ -510,7 +495,7 @@ void recv_generator(char *fname, struct 
                mapbuf = NULL;
  
        if (verbose > 3) {
@@ -250,9 +241,9 @@ test suite, but otherwise UNTESTED.]
                        (double)st.st_size);
        }
  
---- options.c  22 Feb 2004 08:56:43 -0000      1.139
-+++ options.c  27 Feb 2004 08:57:10 -0000
-@@ -89,6 +89,7 @@
+--- options.c  6 May 2004 21:08:01 -0000       1.148
++++ options.c  15 May 2004 20:47:13 -0000
+@@ -91,6 +91,7 @@ int ignore_errors = 0;
  int modify_window = 0;
  int blocking_io = -1;
  int checksum_seed = 0;
@@ -260,23 +251,23 @@ test suite, but otherwise UNTESTED.]
  unsigned int block_size = 0;
  
  
-@@ -288,6 +289,7 @@ void usage(enum logcode F)
+@@ -290,6 +291,7 @@ void usage(enum logcode F)
    rprintf(F,"     --bwlimit=KBPS          limit I/O bandwidth, KBytes per second\n");
    rprintf(F,"     --write-batch=PREFIX    write batch fileset starting with PREFIX\n");
    rprintf(F,"     --read-batch=PREFIX     read batch fileset starting with PREFIX\n");
 +  rprintf(F,"     --fuzzy                 use similar file as basis if it does't exist\n");
-   rprintf(F," -h, --help                  show this help screen\n");
  #ifdef INET6
-   rprintf(F," -4                          prefer IPv4\n");
-@@ -383,6 +385,7 @@ static struct poptOption long_options[] 
+   rprintf(F," -4  --ipv4                  prefer IPv4\n");
+   rprintf(F," -6  --ipv6                  prefer IPv6\n");
+@@ -385,6 +387,7 @@ static struct poptOption long_options[] 
    {"files-from",       0,  POPT_ARG_STRING, &files_from, 0, 0, 0 },
    {"from0",           '0', POPT_ARG_NONE,   &eol_nulls, 0, 0, 0},
    {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
 +  {"fuzzy",            0,  POPT_ARG_NONE,   &fuzzy, 0, 0, 0 },
    {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
  #ifdef INET6
-   {0,               '4', POPT_ARG_VAL,    &default_af_hint, AF_INET, 0, 0 },
-@@ -945,6 +948,9 @@ void server_options(char **args,int *arg
+   {"ipv4",            '4', POPT_ARG_VAL,    &default_af_hint, AF_INET, 0, 0 },
+@@ -964,6 +967,9 @@ void server_options(char **args,int *arg
                        args[ac++] = "--from0";
                }
        }
@@ -286,29 +277,17 @@ test suite, but otherwise UNTESTED.]
  
        *argc = ac;
        return;
---- proto.h    17 Feb 2004 23:13:06 -0000      1.184
-+++ proto.h    27 Feb 2004 08:57:10 -0000
-@@ -1,6 +1,9 @@
- /* This file is automatically generated with "make proto". DO NOT EDIT */
- int allow_access(char *addr, char *host, char *allow_list, char *deny_list);
-+int do_open_regular(char *fname);
-+int open_alternate_base_fuzzy(const char *fname);
-+int open_alternate_base_comparedir(const char *fname);
- void base64_encode(char *buf, int len, char *out);
- char *auth_server(int f_in, int f_out, int module, char *addr, char *leader);
- void auth_client(int fd, char *user, char *challenge);
---- receiver.c 27 Feb 2004 08:03:49 -0000      1.73
-+++ receiver.c 27 Feb 2004 08:57:10 -0000
-@@ -39,6 +39,7 @@
- extern char *backup_suffix;
- extern int backup_suffix_len;
- extern int cleanup_got_literal;
+--- receiver.c 15 May 2004 19:31:10 -0000      1.78
++++ receiver.c 15 May 2004 20:47:13 -0000
+@@ -46,6 +46,7 @@ extern int module_id;
+ extern int ignore_errors;
+ extern int orig_umask;
+ extern int keep_partial;
 +extern int fuzzy;
  
  static void delete_one(char *fn, int is_dir)
  {
-@@ -288,8 +289,6 @@ int recv_files(int f_in,struct file_list
+@@ -294,8 +295,6 @@ int recv_files(int f_in,struct file_list
        char *fname, fbuf[MAXPATHLEN];
        char template[MAXPATHLEN];
        char fnametmp[MAXPATHLEN];
@@ -317,7 +296,7 @@ test suite, but otherwise UNTESTED.]
        struct map_struct *mapbuf;
        int i;
        struct file_struct *file;
-@@ -356,35 +355,31 @@ int recv_files(int f_in,struct file_list
+@@ -358,35 +357,31 @@ int recv_files(int f_in,struct file_list
                if (verbose > 2)
                        rprintf(FINFO,"recv_files(%s)\n",fname);
  
@@ -341,9 +320,9 @@ test suite, but otherwise UNTESTED.]
 +                      fd1 = open_alternate_base_fuzzy(fname);
  
                if (fd1 != -1 && do_fstat(fd1,&st) != 0) {
-                       rprintf(FERROR, "fstat %s failed: %s\n",
--                              full_fname(fnamecmp), strerror(errno));
-+                              full_fname(fname), strerror(errno));
+                       rsyserr(FERROR, errno, "fstat %s failed",
+-                              full_fname(fnamecmp));
++                              full_fname(fname));
                        receive_data(f_in,NULL,-1,NULL,file->length);
                        close(fd1);
                        continue;
@@ -362,7 +341,7 @@ test suite, but otherwise UNTESTED.]
                        receive_data(f_in, NULL, -1, NULL, file->length);
                        close(fd1);
                        continue;
-@@ -405,8 +400,10 @@ int recv_files(int f_in,struct file_list
+@@ -407,8 +402,10 @@ int recv_files(int f_in,struct file_list
  
                if (fd1 != -1 && st.st_size > 0) {
                        mapbuf = map_file(fd1,st.st_size);