Got rid of failing or fuzzy hunks.
authorWayne Davison <wayned@samba.org>
Thu, 29 Jul 2004 16:26:30 +0000 (16:26 +0000)
committerWayne Davison <wayned@samba.org>
Thu, 29 Jul 2004 16:26:30 +0000 (16:26 +0000)
early-chmod.diff
fsync.diff
ignore-case.diff
link-by-hash.diff
max-size.diff
remove-sent-files.diff

index a90f6c2..095d414 100644 (file)
@@ -1,4 +1,4 @@
---- orig/rsync.c       2004-07-23 17:16:13
+--- orig/rsync.c       2004-07-26 16:06:53
 +++ rsync.c    2004-07-26 06:27:27
 @@ -246,6 +246,9 @@ void finish_transfer(char *fname, char *
                goto do_set_perms;
@@ -21,7 +21,7 @@
      do_set_perms:
        set_perms(fname, file, NULL, ok_to_set_time ? 0 : PERMS_SKIP_MTIME);
  }
---- orig/t_stub.c      2004-05-15 20:10:13
+--- orig/t_stub.c      2004-07-29 16:08:04
 +++ t_stub.c   2004-07-03 20:17:55
 @@ -26,6 +26,7 @@
   * functions, so that module test harnesses can run standalone.
@@ -30,8 +30,8 @@
 +int am_root = 0;
  int modify_window = 0;
  int module_id = -1;
struct exclude_list_struct server_exclude_list;
---- orig/util.c        2004-06-09 21:54:47
char *partial_dir;
+--- orig/util.c        2004-07-29 16:08:04
 +++ util.c     2004-07-03 20:17:55
 @@ -29,6 +29,7 @@
  
@@ -40,8 +40,8 @@
 +extern int am_root;
  extern int module_id;
  extern int modify_window;
- extern struct exclude_list_struct server_exclude_list;
-@@ -263,6 +264,8 @@ int copy_file(char *source, char *dest, 
+ extern char *partial_dir;
+@@ -264,6 +265,8 @@ int copy_file(char *source, char *dest, 
                return -1;
        }
  
@@ -50,7 +50,7 @@
        ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode);
        if (ofd == -1) {
                rsyserr(FERROR, errno, "open %s", full_fname(dest));
-@@ -361,8 +364,8 @@ int robust_unlink(char *fname)
+@@ -362,8 +365,8 @@ int robust_unlink(char *fname)
  #endif
  }
  
@@ -61,7 +61,7 @@
  int robust_rename(char *from, char *to, int mode)
  {
        int tries = 4;
-@@ -379,10 +382,12 @@ int robust_rename(char *from, char *to, 
+@@ -380,10 +383,12 @@ int robust_rename(char *from, char *to, 
                        break;
  #endif
                case EXDEV:
index 60d3da9..a5ddfce 100644 (file)
@@ -1,7 +1,7 @@
 This patch from Sami Farin lets you specify --fsync if you want fsync()
 to be called on every file we write.
 
---- orig/options.c     2004-07-20 21:36:07
+--- orig/options.c     2004-07-29 16:08:03
 +++ options.c  2004-07-03 20:18:13
 @@ -38,6 +38,7 @@ int make_backups = 0;
   **/
@@ -11,7 +11,7 @@ to be called on every file we write.
  int archive_mode = 0;
  int keep_dirlinks = 0;
  int copy_links = 0;
-@@ -238,6 +239,7 @@ void usage(enum logcode F)
+@@ -240,6 +241,7 @@ void usage(enum logcode F)
    rprintf(F," -b, --backup                make backups (see --suffix & --backup-dir)\n");
    rprintf(F,"     --backup-dir            make backups into this directory\n");
    rprintf(F,"     --suffix=SUFFIX         backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
@@ -19,7 +19,7 @@ to be called on every file we write.
    rprintf(F," -u, --update                update only (don't overwrite newer files)\n");
    rprintf(F,"     --inplace               update destination files inplace (SEE MAN PAGE)\n");
    rprintf(F," -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n");
-@@ -343,6 +345,7 @@ static struct poptOption long_options[] 
+@@ -346,6 +348,7 @@ static struct poptOption long_options[] 
    {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
    {"help",            'h', POPT_ARG_NONE,   0,              'h', 0, 0 },
    {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
@@ -27,7 +27,7 @@ to be called on every file we write.
    {"dry-run",         'n', POPT_ARG_NONE,   &dry_run, 0, 0, 0 },
    {"sparse",          'S', POPT_ARG_NONE,   &sparse_files, 0, 0, 0 },
    {"cvs-exclude",     'C', POPT_ARG_NONE,   &cvs_exclude, 0, 0, 0 },
-@@ -998,6 +1001,9 @@ void server_options(char **args,int *arg
+@@ -1021,6 +1024,9 @@ void server_options(char **args,int *arg
                args[ac++] = tmpdir;
        }
  
@@ -37,17 +37,17 @@ to be called on every file we write.
        if (compare_dest && am_sender) {
                /* the server only needs this option if it is not the sender,
                 *   and it may be an older version that doesn't know this
---- orig/receiver.c    2004-07-20 21:36:07
+--- orig/receiver.c    2004-07-29 16:08:03
 +++ receiver.c 2004-07-16 20:13:31
-@@ -35,6 +35,7 @@ extern int preserve_hard_links;
+@@ -37,6 +37,7 @@ extern int preserve_hard_links;
  extern int preserve_perms;
  extern int cvs_exclude;
  extern int io_error;
 +extern int do_fsync;
  extern char *tmpdir;
+ extern char *partial_dir;
  extern char *compare_dest;
- extern int make_backups;
-@@ -304,6 +305,12 @@ static int receive_data(int f_in, char *
+@@ -309,6 +310,12 @@ static int receive_data(int f_in, char *
                exit_cleanup(RERR_FILEIO);
        }
  
@@ -60,17 +60,17 @@ to be called on every file we write.
        sum_end(file_sum1);
  
        if (mapbuf)
---- orig/util.c        2004-06-09 21:54:47
+--- orig/util.c        2004-07-29 16:08:04
 +++ util.c     2004-07-03 20:18:13
-@@ -32,6 +32,7 @@ extern int dry_run;
- extern int module_id;
+@@ -33,6 +33,7 @@ extern int module_id;
  extern int modify_window;
+ extern char *partial_dir;
  extern struct exclude_list_struct server_exclude_list;
 +extern int do_fsync;
  
  int sanitize_paths = 0;
  
-@@ -297,6 +298,12 @@ int copy_file(char *source, char *dest, 
+@@ -298,6 +299,12 @@ int copy_file(char *source, char *dest, 
                return -1;
        }
  
index 0677edc..7b317dd 100644 (file)
@@ -60,8 +60,8 @@ NOTE: patch updated for latest CVS source by Wayne Davison, but UNTESTED!
            continue;
          case '?':
            /* Match anything but '/'. */
---- orig/options.c     2004-07-16 20:07:22
-+++ options.c  2004-07-03 20:19:20
+--- orig/options.c     2004-07-29 16:08:03
++++ options.c  2004-07-29 16:13:45
 @@ -92,6 +92,7 @@ int opt_ignore_existing = 0;
  int max_delete = 0;
  int ignore_errors = 0;
@@ -70,7 +70,7 @@ NOTE: patch updated for latest CVS source by Wayne Davison, but UNTESTED!
  int blocking_io = -1;
  int checksum_seed = 0;
  int inplace = 0;
-@@ -285,6 +286,7 @@ void usage(enum logcode F)
+@@ -288,6 +289,7 @@ void usage(enum logcode F)
    rprintf(F,"     --include-from=FILE     don't exclude patterns listed in FILE\n");
    rprintf(F,"     --files-from=FILE       read FILE for list of source-file names\n");
    rprintf(F," -0, --from0                 all *-from file lists are delimited by nulls\n");
@@ -78,7 +78,7 @@ NOTE: patch updated for latest CVS source by Wayne Davison, but UNTESTED!
    rprintf(F,"     --version               print version number\n");
    rprintf(F,"     --daemon                run as an rsync daemon\n");
    rprintf(F,"     --no-detach             do not detach from the parent\n");
-@@ -340,6 +342,7 @@ static struct poptOption long_options[] 
+@@ -343,6 +345,7 @@ static struct poptOption long_options[] 
    {"include",          0,  POPT_ARG_STRING, 0,              OPT_INCLUDE, 0, 0 },
    {"exclude-from",     0,  POPT_ARG_STRING, 0,              OPT_EXCLUDE_FROM, 0, 0 },
    {"include-from",     0,  POPT_ARG_STRING, 0,              OPT_INCLUDE_FROM, 0, 0 },
@@ -86,19 +86,19 @@ NOTE: patch updated for latest CVS source by Wayne Davison, but UNTESTED!
    {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
    {"help",            'h', POPT_ARG_NONE,   0,              'h', 0, 0 },
    {"backup",          'b', POPT_ARG_NONE,   &make_backups, 0, 0, 0 },
-@@ -963,6 +966,9 @@ void server_options(char **args,int *arg
+@@ -983,6 +986,9 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
 +      if (ignore_case)
 +              args[ac++] = "--ignore-case";
 +
-       if (keep_partial)
-               args[ac++] = "--partial";
---- orig/util.c        2004-06-09 21:54:47
+       if (partial_dir && am_sender) {
+               args[ac++] = "--partial-dir";
+               args[ac++] = partial_dir;
+--- orig/util.c        2004-07-29 16:08:04
 +++ util.c     2004-07-03 20:19:20
-@@ -951,6 +951,19 @@ int u_strcmp(const char *cs1, const char
+@@ -1037,6 +1037,19 @@ int u_strcmp(const char *cs1, const char
  {
        const uchar *s1 = (const uchar *)cs1;
        const uchar *s2 = (const uchar *)cs2;
index 674969d..981ccbb 100644 (file)
@@ -367,9 +367,9 @@ the file's name.
 +}
 +
 +#endif
---- orig/options.c     2004-07-23 17:16:13
+--- orig/options.c     2004-07-29 16:08:03
 +++ options.c  2004-07-03 20:20:15
-@@ -125,6 +125,7 @@ char *log_format = NULL;
+@@ -126,6 +126,7 @@ char *log_format = NULL;
  char *password_file = NULL;
  char *rsync_path = RSYNC_PATH;
  char *backup_dir = NULL;
@@ -377,7 +377,7 @@ the file's name.
  char backup_dir_buf[MAXPATHLEN];
  int rsync_port = RSYNC_PORT;
  int link_dest = 0;
-@@ -277,6 +278,7 @@ void usage(enum logcode F)
+@@ -279,6 +280,7 @@ void usage(enum logcode F)
    rprintf(F," -T, --temp-dir=DIR          create temporary files in directory DIR\n");
    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");
@@ -385,7 +385,7 @@ the file's name.
    rprintf(F," -P                          equivalent to --partial --progress\n");
    rprintf(F," -z, --compress              compress file data\n");
    rprintf(F," -C, --cvs-exclude           auto ignore files in the same way CVS does\n");
-@@ -317,7 +319,7 @@ void usage(enum logcode F)
+@@ -319,7 +321,7 @@ void usage(enum logcode F)
  enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
        OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
        OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
@@ -394,7 +394,7 @@ the file's name.
        OPT_REFUSED_BASE = 9000};
  
  static struct poptOption long_options[] = {
-@@ -376,6 +378,7 @@ static struct poptOption long_options[] 
+@@ -378,6 +380,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 },
@@ -402,7 +402,7 @@ the file's name.
    /* TODO: Should this take an optional int giving the compression level? */
    {"compress",        'z', POPT_ARG_NONE,   &do_compression, 0, 0, 0 },
    {"daemon",           0,  POPT_ARG_NONE,   &daemon_opt, 0, 0, 0 },
-@@ -602,6 +605,19 @@ int parse_arguments(int *argc, const cha
+@@ -605,6 +608,19 @@ int parse_arguments(int *argc, const cha
                        return 0;
  #endif
  
@@ -422,7 +422,7 @@ the file's name.
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off (opt-BASE is its index). */
-@@ -1013,6 +1029,11 @@ void server_options(char **args,int *arg
+@@ -1030,6 +1046,11 @@ void server_options(char **args,int *arg
                args[ac++] = compare_dest;
        }
  
@@ -434,17 +434,17 @@ the file's name.
        if (files_from && (!am_sender || remote_filesfrom_file)) {
                if (remote_filesfrom_file) {
                        args[ac++] = "--files-from";
---- orig/receiver.c    2004-07-26 16:20:00
+--- orig/receiver.c    2004-07-29 16:08:03
 +++ receiver.c 2004-07-20 21:44:05
-@@ -39,6 +39,7 @@ extern int cvs_exclude;
- extern int io_error;
+@@ -40,6 +40,7 @@ extern int io_error;
  extern char *tmpdir;
+ extern char *partial_dir;
  extern char *compare_dest;
 +extern char *link_by_hash_dir;
  extern int make_backups;
  extern int do_progress;
  extern char *backup_dir;
-@@ -206,12 +207,13 @@ static int get_tmpname(char *fnametmp, c
+@@ -207,12 +208,13 @@ static int get_tmpname(char *fnametmp, c
  
  
  static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
@@ -459,7 +459,7 @@ the file's name.
        unsigned int len;
        OFF_T offset = 0;
        OFF_T offset2;
-@@ -230,6 +232,9 @@ static int receive_data(int f_in, char *
+@@ -231,6 +233,9 @@ static int receive_data(int f_in, char *
        } else
                mapbuf = NULL;
  
@@ -469,16 +469,16 @@ the file's name.
        sum_init(checksum_seed);
  
        while ((i = recv_token(f_in, &data)) != 0) {
-@@ -246,6 +251,8 @@ static int receive_data(int f_in, char *
+@@ -247,6 +252,8 @@ static int receive_data(int f_in, char *
                        cleanup_got_literal = 1;
  
                        sum_update(data,i);
 +                      if (md4)
 +                              mdfour_update(&mdfour_data,data,i);
  
-                       if (fd != -1 && write_file(fd,data,i) != i) {
-                               rsyserr(FERROR, errno, "write failed on %s",
-@@ -273,6 +280,8 @@ static int receive_data(int f_in, char *
+                       if (fd != -1 && write_file(fd,data,i) != i)
+                               goto report_write_error;
+@@ -271,6 +278,8 @@ static int receive_data(int f_in, char *
  
                        see_token(map, len);
                        sum_update(map,len);
@@ -486,8 +486,8 @@ the file's name.
 +                              mdfour_update(&mdfour_data,map,len);
                }
  
-               if (!inplace || offset != offset2) {
-@@ -311,6 +320,8 @@ static int receive_data(int f_in, char *
+               if (inplace) {
+@@ -310,6 +319,8 @@ static int receive_data(int f_in, char *
        }
  
        sum_end(file_sum1);
@@ -496,7 +496,7 @@ the file's name.
  
        if (mapbuf)
                unmap_file(mapbuf);
-@@ -326,7 +337,7 @@ static int receive_data(int f_in, char *
+@@ -325,7 +336,7 @@ static int receive_data(int f_in, char *
  
  static void discard_receive_data(int f_in, OFF_T length)
  {
@@ -505,7 +505,7 @@ the file's name.
  }
  
  
-@@ -535,8 +546,12 @@ int recv_files(int f_in, struct file_lis
+@@ -546,8 +557,12 @@ int recv_files(int f_in, struct file_lis
                        rprintf(FINFO, "%s\n", safe_fname(fname));
  
                /* recv file data */
@@ -542,9 +542,9 @@ the file's name.
        ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS);
        if (ret < 0) {
                rsyserr(FERROR, errno, "%s %s -> \"%s\"",
---- orig/rsync.h       2004-07-23 17:16:13
+--- orig/rsync.h       2004-07-29 16:08:03
 +++ rsync.h    2004-07-03 20:20:15
-@@ -522,6 +522,14 @@ struct stats {
+@@ -525,6 +525,14 @@ struct stats {
        int current_file_index;
  };
  
index 2241f2c..c2f52ee 100644 (file)
@@ -1,4 +1,4 @@
---- orig/generator.c   2004-07-28 10:05:29
+--- orig/generator.c   2004-07-29 16:08:03
 +++ generator.c        2004-07-03 20:20:46
 @@ -39,6 +39,7 @@ extern int opt_ignore_existing;
  extern int csum_length;
@@ -8,7 +8,7 @@
  extern int io_timeout;
  extern int protocol_version;
  extern int always_checksum;
-@@ -336,6 +337,10 @@ static void recv_generator(char *fname, 
+@@ -337,6 +338,10 @@ static void recv_generator(char *fname, 
                    && verbose && f_out != -1)
                        rprintf(FINFO, "%s/\n", safe_fname(fname));
                return;
@@ -19,7 +19,7 @@
        }
  
        if (preserve_links && S_ISLNK(file->mode)) {
---- orig/options.c     2004-07-23 17:16:13
+--- orig/options.c     2004-07-29 16:08:03
 +++ options.c  2004-07-15 02:34:44
 @@ -90,6 +90,7 @@ int delete_after = 0;
  int only_existing = 0;
@@ -29,7 +29,7 @@
  int ignore_errors = 0;
  int modify_window = 0;
  int blocking_io = -1;
-@@ -139,6 +140,7 @@ char *batch_name = NULL;
+@@ -140,6 +141,7 @@ char *batch_name = NULL;
  
  static int daemon_opt;   /* sets am_daemon after option error-reporting */
  static int modify_window_set;
  
  /** Local address to bind.  As a character string because it's
   * interpreted by the IPv6 layer: should be a numeric IP4 or IP6
-@@ -267,6 +269,7 @@ void usage(enum logcode F)
+@@ -268,6 +270,7 @@ void usage(enum logcode F)
    rprintf(F,"     --delete-after          receiver deletes after transferring, not before\n");
    rprintf(F,"     --ignore-errors         delete even if there are I/O errors\n");
    rprintf(F,"     --max-delete=NUM        don't delete more than NUM files\n");
 +  rprintf(F,"     --max-size=SIZE         don't transfer any file larger than SIZE\n");
    rprintf(F,"     --partial               keep partially transferred files\n");
+   rprintf(F,"     --partial-dir=DIR       put a partially transferred file into DIR\n");
    rprintf(F,"     --force                 force deletion of directories even if not empty\n");
-   rprintf(F,"     --numeric-ids           don't map uid/gid values by user/group name\n");
-@@ -317,7 +320,7 @@ void usage(enum logcode F)
+@@ -319,7 +322,7 @@ void usage(enum logcode F)
  enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
        OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
        OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
@@ -54,7 +54,7 @@
        OPT_REFUSED_BASE = 9000};
  
  static struct poptOption long_options[] = {
-@@ -372,6 +375,7 @@ static struct poptOption long_options[] 
+@@ -374,6 +377,7 @@ static struct poptOption long_options[] 
    {"rsh",             'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
    {"block-size",      'B', POPT_ARG_INT,    &block_size, 0, 0, 0 },
    {"max-delete",       0,  POPT_ARG_INT,    &max_delete, 0, 0, 0 },
@@ -62,7 +62,7 @@
    {"timeout",          0,  POPT_ARG_INT,    &io_timeout, OPT_TIMEOUT, 0, 0 },
    {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
    {"compare-dest",     0,  POPT_ARG_STRING, &compare_dest, 0, 0, 0 },
-@@ -586,6 +590,32 @@ int parse_arguments(int *argc, const cha
+@@ -589,6 +593,32 @@ int parse_arguments(int *argc, const cha
                        read_batch = 1;
                        break;
  
@@ -95,7 +95,7 @@
                case OPT_TIMEOUT:
                        if (io_timeout && io_timeout < select_timeout)
                                select_timeout = io_timeout;
-@@ -924,6 +954,11 @@ void server_options(char **args,int *arg
+@@ -938,6 +968,11 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
        if (io_timeout) {
                if (asprintf(&arg, "--timeout=%d", io_timeout) < 0)
                        goto oom;
---- orig/rsync.yo      2004-07-24 16:52:10
+--- orig/rsync.yo      2004-07-29 16:08:04
 +++ rsync.yo   2004-07-03 20:20:46
 @@ -316,6 +316,7 @@ verb(
       --delete-after          receiver deletes after transfer, not before
       --max-delete=NUM        don't delete more than NUM files
 +     --max-size=SIZE         don't transfer any file larger than SIZE
       --partial               keep partially transferred files
+      --partial-dir=DIR       put a partially transferred file into DIR
       --force                 force deletion of dirs even if not empty
-      --numeric-ids           don't map uid/gid values by user/group name
-@@ -592,6 +593,11 @@ dit(bf(--max-delete=NUM)) This tells rsy
+@@ -593,6 +594,11 @@ dit(bf(--max-delete=NUM)) This tells rsy
  files or directories. This is useful when mirroring very large trees
  to prevent disasters.
  
index 5bd4061..6a984c4 100644 (file)
@@ -4,7 +4,7 @@ command before "make":
     make proto
 
 
---- orig/io.c  2004-07-24 16:52:09
+--- orig/io.c  2004-07-29 16:08:03
 +++ io.c       2004-07-03 20:17:10
 @@ -240,6 +240,14 @@ static void read_msg_fd(void)
                read_loop(fd, buf, 4);
@@ -38,7 +38,7 @@ command before "make":
                case MSG_INFO:
                case MSG_ERROR:
                        if (remaining >= sizeof line) {
---- orig/main.c        2004-07-24 16:52:09
+--- orig/main.c        2004-07-29 16:08:03
 +++ main.c     2004-07-22 03:06:20
 @@ -42,6 +42,7 @@ extern int list_only;
  extern int local_server;
@@ -48,7 +48,7 @@ command before "make":
  extern int orig_umask;
  extern int keep_dirlinks;
  extern int preserve_hard_links;
-@@ -611,6 +612,8 @@ void start_server(int f_in, int f_out, i
+@@ -612,6 +613,8 @@ void start_server(int f_in, int f_out, i
  
        if (am_sender) {
                keep_dirlinks = 0; /* Must be disabled on the sender. */
@@ -57,7 +57,7 @@ command before "make":
  
                recv_exclude_list(f_in);
                if (cvs_exclude)
-@@ -682,6 +685,9 @@ int client_run(int f_in, int f_out, pid_
+@@ -683,6 +686,9 @@ int client_run(int f_in, int f_out, pid_
                exit_cleanup(status);
        }
  
@@ -67,7 +67,7 @@ command before "make":
        if (argc == 0)
                list_only = 1;
  
---- orig/options.c     2004-07-23 17:16:13
+--- orig/options.c     2004-07-29 16:08:03
 +++ options.c  2004-07-16 20:09:54
 @@ -87,8 +87,10 @@ int size_only = 0;
  int bwlimit = 0;
@@ -80,7 +80,7 @@ command before "make":
  int max_delete = 0;
  int ignore_errors = 0;
  int modify_window = 0;
-@@ -265,6 +267,7 @@ void usage(enum logcode F)
+@@ -266,6 +268,7 @@ void usage(enum logcode F)
    rprintf(F,"     --delete                delete files that don't exist on the sending side\n");
    rprintf(F,"     --delete-excluded       also delete excluded files on the receiving side\n");
    rprintf(F,"     --delete-after          receiver deletes after transferring, not before\n");
@@ -88,7 +88,7 @@ command before "make":
    rprintf(F,"     --ignore-errors         delete even if there are I/O errors\n");
    rprintf(F,"     --max-delete=NUM        don't delete more than NUM files\n");
    rprintf(F,"     --partial               keep partially transferred files\n");
-@@ -315,8 +318,8 @@ void usage(enum logcode F)
+@@ -317,8 +320,8 @@ void usage(enum logcode F)
  }
  
  enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
@@ -99,7 +99,7 @@ command before "make":
        OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT,
        OPT_REFUSED_BASE = 9000};
  
-@@ -335,6 +338,7 @@ static struct poptOption long_options[] 
+@@ -337,6 +340,7 @@ static struct poptOption long_options[] 
    {"ignore-existing",  0,  POPT_ARG_NONE,   &opt_ignore_existing, 0, 0, 0 },
    {"delete-after",     0,  POPT_ARG_NONE,   0,              OPT_DELETE_AFTER, 0, 0 },
    {"delete-excluded",  0,  POPT_ARG_NONE,   0,              OPT_DELETE_EXCLUDED, 0, 0 },
@@ -107,7 +107,7 @@ command before "make":
    {"force",            0,  POPT_ARG_NONE,   &force_delete, 0, 0, 0 },
    {"numeric-ids",      0,  POPT_ARG_NONE,   &numeric_ids, 0, 0, 0 },
    {"exclude",          0,  POPT_ARG_STRING, 0,              OPT_EXCLUDE, 0, 0 },
-@@ -521,6 +525,11 @@ int parse_arguments(int *argc, const cha
+@@ -524,6 +528,11 @@ int parse_arguments(int *argc, const cha
                        delete_mode = 1;
                        break;
  
@@ -119,7 +119,7 @@ command before "make":
                case OPT_EXCLUDE:
                        if (am_server || sanitize_paths)
                                return 0; /* Impossible... */
-@@ -1025,6 +1034,9 @@ void server_options(char **args,int *arg
+@@ -1042,6 +1051,9 @@ void server_options(char **args,int *arg
                }
        }
  
@@ -129,9 +129,9 @@ command before "make":
        *argc = ac;
        return;
  
---- orig/receiver.c    2004-07-26 16:20:00
-+++ receiver.c 2004-07-26 06:21:43
-@@ -45,6 +45,7 @@ extern char *backup_dir;
+--- orig/receiver.c    2004-07-29 16:08:03
++++ receiver.c 2004-07-29 16:11:11
+@@ -46,6 +46,7 @@ extern char *backup_dir;
  extern char *backup_suffix;
  extern int backup_suffix_len;
  extern int cleanup_got_literal;
@@ -139,16 +139,16 @@ command before "make":
  extern int module_id;
  extern int ignore_errors;
  extern int orig_umask;
-@@ -342,7 +343,7 @@ int recv_files(int f_in, struct file_lis
+@@ -341,7 +342,7 @@ int recv_files(int f_in, struct file_lis
        char *fname, fbuf[MAXPATHLEN];
        char template[MAXPATHLEN];
        char fnametmp[MAXPATHLEN];
--      char *fnamecmp;
-+      char *fnamecmp, numbuf[4];
+-      char *fnamecmp, *partialptr;
++      char *fnamecmp, *partialptr, numbuf[4];
        char fnamecmpbuf[MAXPATHLEN];
        struct file_struct *file;
        struct stats initial_stats;
-@@ -555,7 +556,12 @@ int recv_files(int f_in, struct file_lis
+@@ -576,7 +577,12 @@ int recv_files(int f_in, struct file_lis
  
                cleanup_disable();
  
@@ -162,7 +162,7 @@ command before "make":
                        int msgtype = csum_length == SUM_LENGTH || read_batch ?
                                FERROR : FINFO;
                        if (msgtype == FERROR || verbose) {
-@@ -575,9 +581,8 @@ int recv_files(int f_in, struct file_lis
+@@ -600,9 +606,8 @@ int recv_files(int f_in, struct file_lis
                                        keptstr, redostr);
                        }
                        if (csum_length != SUM_LENGTH) {
@@ -174,7 +174,7 @@ command before "make":
                        }
                }
        }
---- orig/rsync.h       2004-07-23 17:16:13
+--- orig/rsync.h       2004-07-29 16:08:03
 +++ rsync.h    2004-07-03 20:17:10
 @@ -60,6 +60,7 @@
  #define FLAG_TOP_DIR (1<<0)
@@ -184,7 +184,7 @@ command before "make":
  
  /* update this if you make incompatible changes */
  #define PROTOCOL_VERSION 28
-@@ -123,6 +124,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3
+@@ -126,6 +127,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3
  /* Messages types that are sent over the message channel.  The logcode
   * values must all be present here with identical numbers. */
  enum msgcode {
@@ -192,7 +192,7 @@ command before "make":
        MSG_DONE=5,     /* current phase is done */
        MSG_REDO=4,     /* reprocess indicated flist index */
        MSG_ERROR=FERROR, MSG_INFO=FINFO, MSG_LOG=FLOG, /* remote logging */
---- orig/rsync.yo      2004-07-24 16:52:10
+--- orig/rsync.yo      2004-07-29 16:08:04
 +++ rsync.yo   2004-07-03 20:17:10
 @@ -314,6 +314,7 @@ verb(
       --delete                delete files that don't exist on sender
@@ -202,7 +202,7 @@ command before "make":
       --ignore-errors         delete even if there are I/O errors
       --max-delete=NUM        don't delete more than NUM files
       --partial               keep partially transferred files
-@@ -618,6 +619,11 @@ receiving side before transferring files
+@@ -619,6 +620,11 @@ receiving side before transferring files
  sufficient space on the receiving filesystem. If you want to delete
  after transferring, use the --delete-after switch. Implies --delete.