Fixed failing hunks.
[rsync/rsync-patches.git] / flags.diff
index 69072ef..c67eda0 100644 (file)
@@ -12,24 +12,24 @@ TODO: fix --delete-delay to work with --flags option.
 
 --- old/compat.c
 +++ new/compat.c
 
 --- old/compat.c
 +++ new/compat.c
-@@ -45,6 +45,7 @@ extern int prune_empty_dirs;
- extern int protocol_version;
+@@ -44,6 +44,7 @@ extern int protocol_version;
+ extern int protect_args;
  extern int preserve_uid;
  extern int preserve_gid;
 +extern int preserve_fileflags;
  extern int preserve_acls;
  extern int preserve_xattrs;
  extern int need_messages_from_generator;
  extern int preserve_uid;
  extern int preserve_gid;
 +extern int preserve_fileflags;
  extern int preserve_acls;
  extern int preserve_xattrs;
  extern int need_messages_from_generator;
-@@ -58,7 +59,7 @@ extern char *dest_option;
- extern struct filter_list_struct filter_list;
+@@ -60,7 +61,7 @@ extern iconv_t ic_send, ic_recv;
+ #endif
  
  /* These index values are for the file-list's extra-attribute array. */
 -int uid_ndx, gid_ndx, acls_ndx, xattrs_ndx;
 +int uid_ndx, gid_ndx, fileflags_ndx, acls_ndx, xattrs_ndx;
  
  /* These index values are for the file-list's extra-attribute array. */
 -int uid_ndx, gid_ndx, acls_ndx, xattrs_ndx;
 +int uid_ndx, gid_ndx, fileflags_ndx, acls_ndx, xattrs_ndx;
+ #ifdef ICONV_OPTION
+ int ic_ndx;
  
  
- /* The server makes sure that if either side only supports a pre-release
-  * version of a protocol, that both sides must speak a compatible version
-@@ -105,6 +106,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -112,6 +113,8 @@ void setup_protocol(int f_out,int f_in)
                uid_ndx = ++file_extra_cnt;
        if (preserve_gid)
                gid_ndx = ++file_extra_cnt;
                uid_ndx = ++file_extra_cnt;
        if (preserve_gid)
                gid_ndx = ++file_extra_cnt;
@@ -59,7 +59,7 @@ TODO: fix --delete-delay to work with --flags option.
  extern int uid_ndx;
  extern int gid_ndx;
  extern int eol_nulls;
  extern int uid_ndx;
  extern int gid_ndx;
  extern int eol_nulls;
-@@ -362,6 +363,9 @@ static void send_file_entry(int f, struc
+@@ -335,6 +336,9 @@ static void send_file_entry(int f, struc
  {
        static time_t modtime;
        static mode_t mode;
  {
        static time_t modtime;
        static mode_t mode;
@@ -69,7 +69,7 @@ TODO: fix --delete-delay to work with --flags option.
        static int64 dev;
        static dev_t rdev;
        static uint32 rdev_major;
        static int64 dev;
        static dev_t rdev;
        static uint32 rdev_major;
-@@ -410,6 +414,12 @@ static void send_file_entry(int f, struc
+@@ -382,6 +386,12 @@ static void send_file_entry(int f, struc
                xflags |= XMIT_SAME_MODE;
        else
                mode = file->mode;
                xflags |= XMIT_SAME_MODE;
        else
                mode = file->mode;
@@ -82,7 +82,7 @@ TODO: fix --delete-delay to work with --flags option.
  
        if (protocol_version >= 30 && S_ISDIR(mode) && !(file->flags & FLAG_XFER_DIR))
                xflags |= XMIT_NON_XFER_DIR;
  
        if (protocol_version >= 30 && S_ISDIR(mode) && !(file->flags & FLAG_XFER_DIR))
                xflags |= XMIT_NON_XFER_DIR;
-@@ -532,6 +542,10 @@ static void send_file_entry(int f, struc
+@@ -505,6 +515,10 @@ static void send_file_entry(int f, struc
        }
        if (!(xflags & XMIT_SAME_MODE))
                write_int(f, to_wire_mode(mode));
        }
        if (!(xflags & XMIT_SAME_MODE))
                write_int(f, to_wire_mode(mode));
@@ -93,7 +93,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
                if (protocol_version < 30)
                        write_int(f, uid);
        if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
                if (protocol_version < 30)
                        write_int(f, uid);
-@@ -620,6 +634,9 @@ static struct file_struct *recv_file_ent
+@@ -593,6 +607,9 @@ static struct file_struct *recv_file_ent
  {
        static int64 modtime;
        static mode_t mode;
  {
        static int64 modtime;
        static mode_t mode;
@@ -103,7 +103,7 @@ TODO: fix --delete-delay to work with --flags option.
        static int64 dev;
        static dev_t rdev;
        static uint32 rdev_major;
        static int64 dev;
        static dev_t rdev;
        static uint32 rdev_major;
-@@ -755,9 +772,12 @@ static struct file_struct *recv_file_ent
+@@ -722,9 +739,12 @@ static struct file_struct *recv_file_ent
        }
        if (!(xflags & XMIT_SAME_MODE))
                mode = from_wire_mode(read_int(f));
        }
        if (!(xflags & XMIT_SAME_MODE))
                mode = from_wire_mode(read_int(f));
@@ -117,7 +117,7 @@ TODO: fix --delete-delay to work with --flags option.
  
        if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
                if (protocol_version < 30)
  
        if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
                if (protocol_version < 30)
-@@ -877,6 +897,10 @@ static struct file_struct *recv_file_ent
+@@ -844,6 +864,10 @@ static struct file_struct *recv_file_ent
                OPT_EXTRA(file, 0)->unum = (uint32)(file_length >> 32);
        }
        file->mode = mode;
                OPT_EXTRA(file, 0)->unum = (uint32)(file_length >> 32);
        }
        file->mode = mode;
@@ -128,7 +128,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (uid_ndx)
                F_OWNER(file) = uid;
        if (gid_ndx) {
        if (uid_ndx)
                F_OWNER(file) = uid;
        if (gid_ndx) {
-@@ -1194,6 +1218,10 @@ struct file_struct *make_file(const char
+@@ -1168,6 +1192,10 @@ struct file_struct *make_file(const char
                OPT_EXTRA(file, 0)->unum = (uint32)(st.st_size >> 32);
        }
        file->mode = st.st_mode;
                OPT_EXTRA(file, 0)->unum = (uint32)(st.st_size >> 32);
        }
        file->mode = st.st_mode;
@@ -141,7 +141,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (gid_ndx)
 --- old/generator.c
 +++ new/generator.c
        if (gid_ndx)
 --- old/generator.c
 +++ new/generator.c
-@@ -115,6 +115,14 @@ static int need_retouch_dir_times;
+@@ -114,6 +114,14 @@ static int need_retouch_dir_times;
  static int need_retouch_dir_perms;
  static const char *solo_file = NULL;
  
  static int need_retouch_dir_perms;
  static const char *solo_file = NULL;
  
@@ -156,7 +156,7 @@ TODO: fix --delete-delay to work with --flags option.
  /* For calling delete_item() and delete_dir_contents(). */
  #define DEL_RECURSE           (1<<1) /* recurse */
  #define DEL_DIR_IS_EMPTY      (1<<2) /* internal delete_FUNCTIONS use only */
  /* For calling delete_item() and delete_dir_contents(). */
  #define DEL_RECURSE           (1<<1) /* recurse */
  #define DEL_DIR_IS_EMPTY      (1<<2) /* internal delete_FUNCTIONS use only */
-@@ -130,7 +138,6 @@ enum delret {
+@@ -129,7 +137,6 @@ enum delret {
  /* Forward declaration for delete_item(). */
  static enum delret delete_dir_contents(char *fname, int flags);
  
  /* Forward declaration for delete_item(). */
  static enum delret delete_dir_contents(char *fname, int flags);
  
@@ -164,7 +164,7 @@ TODO: fix --delete-delay to work with --flags option.
  static int is_backup_file(char *fn)
  {
        int k = strlen(fn) - backup_suffix_len;
  static int is_backup_file(char *fn)
  {
        int k = strlen(fn) - backup_suffix_len;
-@@ -143,17 +150,20 @@ static int is_backup_file(char *fn)
+@@ -142,17 +149,20 @@ static int is_backup_file(char *fn)
   * Note that fbuf must point to a MAXPATHLEN buffer if the mode indicates it's
   * a directory! (The buffer is used for recursion, but returned unchanged.)
   */
   * Note that fbuf must point to a MAXPATHLEN buffer if the mode indicates it's
   * a directory! (The buffer is used for recursion, but returned unchanged.)
   */
@@ -188,7 +188,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (S_ISDIR(mode) && !(flags & DEL_DIR_IS_EMPTY)) {
                ignore_perishable = 1;
                /* If DEL_RECURSE is not set, this just reports emptiness. */
        if (S_ISDIR(mode) && !(flags & DEL_DIR_IS_EMPTY)) {
                ignore_perishable = 1;
                /* If DEL_RECURSE is not set, this just reports emptiness. */
-@@ -265,7 +275,7 @@ static enum delret delete_dir_contents(c
+@@ -264,7 +274,7 @@ static enum delret delete_dir_contents(c
                if (S_ISDIR(fp->mode)
                 && delete_dir_contents(fname, flags | DEL_RECURSE) != DR_SUCCESS)
                        ret = DR_NOT_EMPTY;
                if (S_ISDIR(fp->mode)
                 && delete_dir_contents(fname, flags | DEL_RECURSE) != DR_SUCCESS)
                        ret = DR_NOT_EMPTY;
@@ -197,7 +197,7 @@ TODO: fix --delete-delay to work with --flags option.
                        ret = DR_NOT_EMPTY;
        }
  
                        ret = DR_NOT_EMPTY;
        }
  
-@@ -321,8 +331,9 @@ static int remember_delete(struct file_s
+@@ -320,8 +330,9 @@ static int remember_delete(struct file_s
        
        while (1) {
                len = snprintf(deldelay_buf + deldelay_cnt,
        
        while (1) {
                len = snprintf(deldelay_buf + deldelay_cnt,
@@ -209,7 +209,7 @@ TODO: fix --delete-delay to work with --flags option.
                if ((deldelay_cnt += len) <= deldelay_size)
                        break;
                if (deldelay_fd < 0 && !start_delete_delay_temp())
                if ((deldelay_cnt += len) <= deldelay_size)
                        break;
                if (deldelay_fd < 0 && !start_delete_delay_temp())
-@@ -335,7 +346,7 @@ static int remember_delete(struct file_s
+@@ -334,7 +345,7 @@ static int remember_delete(struct file_s
        return 1;
  }
  
        return 1;
  }
  
@@ -218,7 +218,7 @@ TODO: fix --delete-delay to work with --flags option.
  {
        static int read_pos = 0;
        int j, len, mode;
  {
        static int read_pos = 0;
        int j, len, mode;
-@@ -377,7 +388,7 @@ static int read_delay_line(char *buf)
+@@ -376,7 +387,7 @@ static int read_delay_line(char *buf)
  
        bp = deldelay_buf + read_pos;
  
  
        bp = deldelay_buf + read_pos;
  
@@ -227,7 +227,7 @@ TODO: fix --delete-delay to work with --flags option.
          invalid_data:
                rprintf(FERROR, "ERROR: invalid data in delete-delay file.\n");
                return -1;
          invalid_data:
                rprintf(FERROR, "ERROR: invalid data in delete-delay file.\n");
                return -1;
-@@ -400,15 +411,15 @@ static int read_delay_line(char *buf)
+@@ -399,15 +410,15 @@ static int read_delay_line(char *buf)
  
  static void do_delayed_deletions(char *delbuf)
  {
  
  static void do_delayed_deletions(char *delbuf)
  {
@@ -246,7 +246,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (deldelay_fd >= 0)
                close(deldelay_fd);
  }
        if (deldelay_fd >= 0)
                close(deldelay_fd);
  }
-@@ -475,7 +486,7 @@ static void delete_in_dir(char *fbuf, st
+@@ -474,7 +485,7 @@ static void delete_in_dir(char *fbuf, st
                                if (!remember_delete(fp, delbuf))
                                        break;
                        } else
                                if (!remember_delete(fp, delbuf))
                                        break;
                        } else
@@ -255,7 +255,7 @@ TODO: fix --delete-delay to work with --flags option.
                }
        }
  
                }
        }
  
-@@ -1219,7 +1230,7 @@ static void recv_generator(char *fname, 
+@@ -1270,7 +1281,7 @@ static void recv_generator(char *fname, 
                 * we need to delete it.  If it doesn't exist, then
                 * (perhaps recursively) create it. */
                if (statret == 0 && !S_ISDIR(sx.st.st_mode)) {
                 * we need to delete it.  If it doesn't exist, then
                 * (perhaps recursively) create it. */
                if (statret == 0 && !S_ISDIR(sx.st.st_mode)) {
@@ -264,7 +264,7 @@ TODO: fix --delete-delay to work with --flags option.
                                goto skipping_dir_contents;
                        statret = -1;
                }
                                goto skipping_dir_contents;
                        statret = -1;
                }
-@@ -1351,7 +1362,7 @@ static void recv_generator(char *fname, 
+@@ -1399,7 +1410,7 @@ static void recv_generator(char *fname, 
                        }
                        /* Not the right symlink (or not a symlink), so
                         * delete it. */
                        }
                        /* Not the right symlink (or not a symlink), so
                         * delete it. */
@@ -273,7 +273,7 @@ TODO: fix --delete-delay to work with --flags option.
                                goto cleanup;
                } else if (basis_dir[0] != NULL) {
                        int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
                                goto cleanup;
                } else if (basis_dir[0] != NULL) {
                        int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
-@@ -1430,7 +1441,7 @@ static void recv_generator(char *fname, 
+@@ -1478,7 +1489,7 @@ static void recv_generator(char *fname, 
                                        goto return_with_success;
                                goto cleanup;
                        }
                                        goto return_with_success;
                                goto cleanup;
                        }
@@ -282,7 +282,7 @@ TODO: fix --delete-delay to work with --flags option.
                                goto cleanup;
                } else if (basis_dir[0] != NULL) {
                        int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
                                goto cleanup;
                } else if (basis_dir[0] != NULL) {
                        int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
-@@ -1521,7 +1532,7 @@ static void recv_generator(char *fname, 
+@@ -1569,7 +1580,7 @@ static void recv_generator(char *fname, 
        fnamecmp_type = FNAMECMP_FNAME;
  
        if (statret == 0 && !S_ISREG(sx.st.st_mode)) {
        fnamecmp_type = FNAMECMP_FNAME;
  
        if (statret == 0 && !S_ISREG(sx.st.st_mode)) {
@@ -293,7 +293,7 @@ TODO: fix --delete-delay to work with --flags option.
                stat_errno = ENOENT;
 --- old/options.c
 +++ new/options.c
                stat_errno = ENOENT;
 --- old/options.c
 +++ new/options.c
-@@ -50,6 +50,7 @@ int preserve_hard_links = 0;
+@@ -51,6 +51,7 @@ int preserve_hard_links = 0;
  int preserve_acls = 0;
  int preserve_xattrs = 0;
  int preserve_perms = 0;
  int preserve_acls = 0;
  int preserve_xattrs = 0;
  int preserve_perms = 0;
@@ -301,7 +301,7 @@ TODO: fix --delete-delay to work with --flags option.
  int preserve_executability = 0;
  int preserve_devices = 0;
  int preserve_specials = 0;
  int preserve_executability = 0;
  int preserve_devices = 0;
  int preserve_specials = 0;
-@@ -220,6 +221,7 @@ static void print_rsync_version(enum log
+@@ -221,6 +222,7 @@ static void print_rsync_version(enum log
        char const *links = "no ";
        char const *iconv = "no ";
        char const *ipv6 = "no ";
        char const *links = "no ";
        char const *iconv = "no ";
        char const *ipv6 = "no ";
@@ -309,7 +309,7 @@ TODO: fix --delete-delay to work with --flags option.
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -249,6 +251,9 @@ static void print_rsync_version(enum log
+@@ -250,6 +252,9 @@ static void print_rsync_version(enum log
  #ifdef ICONV_OPTION
        iconv = "";
  #endif
  #ifdef ICONV_OPTION
        iconv = "";
  #endif
@@ -319,7 +319,7 @@ TODO: fix --delete-delay to work with --flags option.
  
        rprintf(f, "%s  version %s  protocol version %d%s\n",
                RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
  
        rprintf(f, "%s  version %s  protocol version %d%s\n",
                RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
-@@ -262,8 +267,8 @@ static void print_rsync_version(enum log
+@@ -263,8 +268,8 @@ static void print_rsync_version(enum log
                (int)(sizeof (int64) * 8));
        rprintf(f, "    %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n",
                got_socketpair, hardlinks, links, ipv6, have_inplace);
                (int)(sizeof (int64) * 8));
        rprintf(f, "    %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n",
                got_socketpair, hardlinks, links, ipv6, have_inplace);
@@ -330,7 +330,7 @@ TODO: fix --delete-delay to work with --flags option.
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
-@@ -330,6 +335,7 @@ void usage(enum logcode F)
+@@ -331,6 +336,7 @@ void usage(enum logcode F)
    rprintf(F," -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n");
    rprintf(F," -H, --hard-links            preserve hard links\n");
    rprintf(F," -p, --perms                 preserve permissions\n");
    rprintf(F," -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n");
    rprintf(F," -H, --hard-links            preserve hard links\n");
    rprintf(F," -p, --perms                 preserve permissions\n");
@@ -338,7 +338,7 @@ TODO: fix --delete-delay to work with --flags option.
    rprintf(F," -E, --executability         preserve the file's executability\n");
    rprintf(F,"     --chmod=CHMOD           affect file and/or directory permissions\n");
  #ifdef SUPPORT_ACLS
    rprintf(F," -E, --executability         preserve the file's executability\n");
    rprintf(F,"     --chmod=CHMOD           affect file and/or directory permissions\n");
  #ifdef SUPPORT_ACLS
-@@ -469,6 +475,8 @@ static struct poptOption long_options[] 
+@@ -470,6 +476,8 @@ static struct poptOption long_options[] 
    {"perms",           'p', POPT_ARG_VAL,    &preserve_perms, 1, 0, 0 },
    {"no-perms",         0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
    {"no-p",             0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
    {"perms",           'p', POPT_ARG_VAL,    &preserve_perms, 1, 0, 0 },
    {"no-perms",         0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
    {"no-p",             0,  POPT_ARG_VAL,    &preserve_perms, 0, 0, 0 },
@@ -347,7 +347,7 @@ TODO: fix --delete-delay to work with --flags option.
    {"executability",   'E', POPT_ARG_NONE,   &preserve_executability, 0, 0, 0 },
    {"acls",            'A', POPT_ARG_NONE,   0, 'A', 0, 0 },
    {"no-acls",          0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
    {"executability",   'E', POPT_ARG_NONE,   &preserve_executability, 0, 0, 0 },
    {"acls",            'A', POPT_ARG_NONE,   0, 'A', 0, 0 },
    {"no-acls",          0,  POPT_ARG_VAL,    &preserve_acls, 0, 0, 0 },
-@@ -1279,6 +1287,15 @@ int parse_arguments(int *argc_p, const c
+@@ -1285,6 +1293,15 @@ int parse_arguments(int *argc_p, const c
        }
  #endif
  
        }
  #endif
  
@@ -363,7 +363,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (write_batch && read_batch) {
                snprintf(err_buf, sizeof err_buf,
                        "--write-batch and --read-batch can not be used together\n");
        if (write_batch && read_batch) {
                snprintf(err_buf, sizeof err_buf,
                        "--write-batch and --read-batch can not be used together\n");
-@@ -1770,6 +1787,9 @@ void server_options(char **args, int *ar
+@@ -1796,6 +1813,9 @@ void server_options(char **args, int *ar
        if (xfer_dirs && !recurse && delete_mode && am_sender)
                args[ac++] = "--no-r";
  
        if (xfer_dirs && !recurse && delete_mode && am_sender)
                args[ac++] = "--no-r";
  
@@ -375,7 +375,7 @@ TODO: fix --delete-delay to work with --flags option.
                        goto oom;
 --- old/rsync.c
 +++ new/rsync.c
                        goto oom;
 --- old/rsync.c
 +++ new/rsync.c
-@@ -31,6 +31,7 @@ extern int dry_run;
+@@ -32,6 +32,7 @@ extern int dry_run;
  extern int preserve_acls;
  extern int preserve_xattrs;
  extern int preserve_perms;
  extern int preserve_acls;
  extern int preserve_xattrs;
  extern int preserve_perms;
@@ -383,9 +383,9 @@ TODO: fix --delete-delay to work with --flags option.
  extern int preserve_executability;
  extern int preserve_times;
  extern int am_root;
  extern int preserve_executability;
  extern int preserve_times;
  extern int am_root;
-@@ -60,6 +61,16 @@ iconv_t ic_send = (iconv_t)-1, ic_recv =
- int ic_ndx;
- #endif
+@@ -60,6 +61,16 @@ iconv_t ic_chck = (iconv_t)-1;
+ iconv_t ic_send = (iconv_t)-1, ic_recv = (iconv_t)-1;
+ # endif
  
 +#ifdef SUPPORT_FLAGS
 +#ifndef UF_NOUNLINK
  
 +#ifdef SUPPORT_FLAGS
 +#ifndef UF_NOUNLINK
@@ -399,8 +399,8 @@ TODO: fix --delete-delay to work with --flags option.
 +
  static const char *default_charset(void)
  {
 +
  static const char *default_charset(void)
  {
- #if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET
-@@ -267,6 +278,41 @@ mode_t dest_mode(mode_t flist_mode, mode
+ # if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET
+@@ -337,6 +348,41 @@ mode_t dest_mode(mode_t flist_mode, mode
        return new_mode;
  }
  
        return new_mode;
  }
  
@@ -439,10 +439,10 @@ TODO: fix --delete-delay to work with --flags option.
 +}
 +#endif
 +
 +}
 +#endif
 +
- int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp,
+ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
                   const char *fnamecmp, int flags)
  {
                   const char *fnamecmp, int flags)
  {
-@@ -395,6 +441,15 @@ int set_file_attrs(const char *fname, st
+@@ -468,6 +514,15 @@ int set_file_attrs(const char *fname, st
        }
  #endif
  
        }
  #endif
  
@@ -458,7 +458,7 @@ TODO: fix --delete-delay to work with --flags option.
        if (verbose > 1 && flags & ATTRS_REPORT) {
                if (updated)
                        rprintf(FCLIENT, "%s\n", fname);
        if (verbose > 1 && flags & ATTRS_REPORT) {
                if (updated)
                        rprintf(FCLIENT, "%s\n", fname);
-@@ -454,6 +509,9 @@ void finish_transfer(const char *fname, 
+@@ -527,6 +582,9 @@ void finish_transfer(const char *fname, 
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
                       ok_to_set_time ? 0 : ATTRS_SKIP_MTIME);
  
        set_file_attrs(fnametmp, file, NULL, fnamecmp,
                       ok_to_set_time ? 0 : ATTRS_SKIP_MTIME);
  
@@ -468,7 +468,7 @@ TODO: fix --delete-delay to work with --flags option.
        /* move tmp file over real file */
        if (verbose > 2)
                rprintf(FINFO, "renaming %s to %s\n", fnametmp, fname);
        /* move tmp file over real file */
        if (verbose > 2)
                rprintf(FINFO, "renaming %s to %s\n", fnametmp, fname);
-@@ -468,6 +526,9 @@ void finish_transfer(const char *fname, 
+@@ -541,6 +599,9 @@ void finish_transfer(const char *fname, 
        }
        if (ret == 0) {
                /* The file was moved into place (not copied), so it's done. */
        }
        if (ret == 0) {
                /* The file was moved into place (not copied), so it's done. */
@@ -488,7 +488,7 @@ TODO: fix --delete-delay to work with --flags option.
  
  /* These flags are used in the live flist data. */
  
  
  /* These flags are used in the live flist data. */
  
-@@ -406,6 +407,10 @@ enum msgcode {
+@@ -415,6 +416,10 @@ enum msgcode {
  #endif
  #endif
  
  #endif
  #endif
  
@@ -499,7 +499,7 @@ TODO: fix --delete-delay to work with --flags option.
  /* Find a variable that is either exactly 32-bits or longer.
   * If some code depends on 32-bit truncation, it will need to
   * take special action in a "#if SIZEOF_INT32 > 4" section. */
  /* Find a variable that is either exactly 32-bits or longer.
   * If some code depends on 32-bit truncation, it will need to
   * take special action in a "#if SIZEOF_INT32 > 4" section. */
-@@ -573,6 +578,7 @@ extern int file_extra_cnt;
+@@ -582,6 +587,7 @@ extern int file_extra_cnt;
  extern int inc_recurse;
  extern int uid_ndx;
  extern int gid_ndx;
  extern int inc_recurse;
  extern int uid_ndx;
  extern int gid_ndx;
@@ -507,7 +507,7 @@ TODO: fix --delete-delay to work with --flags option.
  extern int acls_ndx;
  extern int xattrs_ndx;
  
  extern int acls_ndx;
  extern int xattrs_ndx;
  
-@@ -610,6 +616,7 @@ extern int xattrs_ndx;
+@@ -619,6 +625,7 @@ extern int xattrs_ndx;
  /* When the associated option is on, all entries will have these present: */
  #define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
  #define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
  /* When the associated option is on, all entries will have these present: */
  #define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
  #define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
@@ -525,7 +525,7 @@ TODO: fix --delete-delay to work with --flags option.
   -E, --executability         preserve executability
       --chmod=CHMOD           affect file and/or directory permissions
   -A, --acls                  preserve ACLs (implies -p)
   -E, --executability         preserve executability
       --chmod=CHMOD           affect file and/or directory permissions
   -A, --acls                  preserve ACLs (implies -p)
-@@ -543,7 +544,9 @@ specified, in which case bf(-r) is not i
+@@ -544,7 +545,9 @@ specified, in which case bf(-r) is not i
  
  Note that bf(-a) bf(does not preserve hardlinks), because
  finding multiply-linked files is expensive.  You must separately
  
  Note that bf(-a) bf(does not preserve hardlinks), because
  finding multiply-linked files is expensive.  You must separately
@@ -536,7 +536,7 @@ TODO: fix --delete-delay to work with --flags option.
  
  dit(--no-OPTION) You may turn off one or more implied options by prefixing
  the option name with "no-".  Not all options may be prefixed with a "no-":
  
  dit(--no-OPTION) You may turn off one or more implied options by prefixing
  the option name with "no-".  Not all options may be prefixed with a "no-":
-@@ -883,6 +886,13 @@ dit(bf(-X, --xattrs)) This option causes
+@@ -891,6 +894,13 @@ dit(bf(-X, --xattrs)) This option causes
  extended attributes to be the same as the local ones.  This will work
  only if the remote machine's rsync also supports this option.
  
  extended attributes to be the same as the local ones.  This will work
  only if the remote machine's rsync also supports this option.