Fixed failing hunks.
[rsync/rsync-patches.git] / id-pair.diff
index bc0fda6..1e3d67b 100644 (file)
@@ -8,8 +8,8 @@ This only saves 4 bytes per file (not counting the overhead of the array).
 This probably needs a hashing algorithm to be added if the uid+gid list
 gets to be really large.
 
---- orig/flist.c       2006-01-31 02:30:18
-+++ flist.c    2006-01-26 10:56:31
+--- old/flist.c
++++ new/flist.c
 @@ -60,6 +60,7 @@ extern int protocol_version;
  extern int sanitize_paths;
  extern const char *io_write_phase;
@@ -98,8 +98,8 @@ gets to be really large.
                        *gidbuf = '\0';
                if (!am_sender)
                        sprintf(depthbuf, "%d", file->dir.depth);
---- orig/generator.c   2006-01-31 02:30:18
-+++ generator.c        2006-01-25 17:39:42
+--- old/generator.c
++++ new/generator.c
 @@ -91,6 +91,7 @@ extern dev_t filesystem_dev;
  extern char *backup_dir;
  extern char *backup_suffix;
@@ -132,9 +132,9 @@ gets to be really large.
  
                if (S_ISREG(file->mode) && file->length != st->st_size)
                        iflags |= ITEM_REPORT_SIZE;
-@@ -352,10 +357,10 @@ void itemize(struct file_struct *file, i
-               if (preserve_perms
-                && (file->mode & CHMOD_BITS) != (st->st_mode & CHMOD_BITS))
+@@ -351,10 +356,10 @@ void itemize(struct file_struct *file, i
+                       iflags |= ITEM_REPORT_TIME;
+               if ((file->mode & CHMOD_BITS) != (st->st_mode & CHMOD_BITS))
                        iflags |= ITEM_REPORT_PERMS;
 -              if (preserve_uid && am_root && file->uid != st->st_uid)
 +              if (preserve_uid && am_root && uid != st->st_uid)
@@ -146,17 +146,47 @@ gets to be really large.
                        iflags |= ITEM_REPORT_GROUP;
        } else
                iflags |= ITEM_IS_NEW;
---- orig/rsync.c       2006-01-31 02:30:18
-+++ rsync.c    2006-01-25 17:26:06
-@@ -40,6 +40,7 @@ extern int inplace;
+--- old/log.c
++++ new/log.c
+@@ -45,6 +45,7 @@ extern int preserve_times;
+ extern int log_format_has_i;
+ extern int log_format_has_o_or_i;
+ extern int daemon_log_format_has_o_or_i;
++extern struct id_pair *id_pairs;
+ extern char *auth_user;
+ extern char *log_format;
+ #if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
+@@ -480,16 +481,16 @@ static void log_formatted(enum logcode c
+               case 'U':
+                       strlcat(fmt, "ld", sizeof fmt);
+                       snprintf(buf2, sizeof buf2, fmt,
+-                               (long)file->uid);
++                               (long)id_pairs[file->id_ndx].uid);
+                       n = buf2;
+                       break;
+               case 'G':
+-                      if (file->gid == GID_NONE)
++                      if (id_pairs[file->id_ndx].gid == GID_NONE)
+                               n = "DEFAULT";
+                       else {
+                               strlcat(fmt, "ld", sizeof fmt);
+                               snprintf(buf2, sizeof buf2, fmt,
+-                                       (long)file->gid);
++                                       (long)id_pairs[file->id_ndx].gid);
+                               n = buf2;
+                       }
+                       break;
+--- old/rsync.c
++++ new/rsync.c
+@@ -50,6 +50,7 @@ extern int inplace;
  extern int keep_dirlinks;
  extern int make_backups;
  extern struct stats stats;
 +extern struct id_pair *id_pairs;
+ extern struct chmod_mode_struct *daemon_chmod_modes;
  
- /*
-@@ -78,6 +79,8 @@ int set_file_attrs(char *fname, struct f
+ #if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
+@@ -128,6 +129,8 @@ int set_file_attrs(char *fname, struct f
        int updated = 0;
        STRUCT_STAT st2;
        int change_uid, change_gid;
@@ -165,7 +195,7 @@ gets to be really large.
  
        if (!st) {
                if (dry_run)
-@@ -104,9 +107,11 @@ int set_file_attrs(char *fname, struct f
+@@ -160,9 +163,11 @@ int set_file_attrs(char *fname, struct f
                        updated = 1;
        }
  
@@ -180,7 +210,7 @@ gets to be really large.
  #if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK
        if (S_ISLNK(st->st_mode))
                ;
-@@ -118,18 +123,18 @@ int set_file_attrs(char *fname, struct f
+@@ -174,18 +179,18 @@ int set_file_attrs(char *fname, struct f
                                rprintf(FINFO,
                                        "set uid of %s from %ld to %ld\n",
                                        fname,
@@ -203,8 +233,8 @@ gets to be really large.
                        /* shouldn't have attempted to change uid or gid
                         * unless have the privilege */
                        rsyserr(FERROR, errno, "%s %s failed",
---- orig/rsync.h       2006-01-30 20:39:09
-+++ rsync.h    2006-01-25 17:15:44
+--- old/rsync.h
++++ new/rsync.h
 @@ -493,6 +493,11 @@ struct hlink {
        int hlindex;
  };
@@ -227,8 +257,8 @@ gets to be really large.
        mode_t mode;
        uchar flags;    /* this item MUST remain last */
  };
---- orig/uidlist.c     2006-01-25 17:15:13
-+++ uidlist.c  2006-01-25 17:31:20
+--- old/uidlist.c
++++ new/uidlist.c
 @@ -37,6 +37,8 @@ extern int preserve_gid;
  extern int numeric_ids;
  extern int am_root;