-@@ -379,7 +380,7 @@ int push_pathname(const char *dir, int len)
+@@ -388,7 +389,7 @@ int change_pathname(struct file_struct *file, const char *dir, int dirlen)
static void send_file_entry(int f, const char *fname, struct file_struct *file, int ndx, int first_ndx)
{
static void send_file_entry(int f, const char *fname, struct file_struct *file, int ndx, int first_ndx)
{
-@@ -457,6 +458,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -462,6 +463,13 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
-@@ -529,6 +537,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -533,6 +541,8 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
}
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
}
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
-@@ -615,7 +625,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -619,7 +629,7 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
-@@ -749,6 +759,16 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -753,6 +763,16 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
if (chmod_modes && !S_ISLNK(mode))
mode = tweak_mode(mode, chmod_modes);
if (chmod_modes && !S_ISLNK(mode))
mode = tweak_mode(mode, chmod_modes);
-@@ -878,6 +898,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -882,6 +902,8 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
-@@ -1215,6 +1237,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1230,6 +1252,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
F_OWNER(file) = st.st_uid;
if (gid_ndx) /* Check gid_ndx instead of preserve_gid for del support */
F_GROUP(file) = st.st_gid;
F_OWNER(file) = st.st_uid;
if (gid_ndx) /* Check gid_ndx instead of preserve_gid for del support */
F_GROUP(file) = st.st_gid;
-@@ -2017,7 +2026,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2029,7 +2038,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
STRUCT_STAT st;
if (link_stat(fname, &st, 0) == 0
&& cmp_time(st.st_mtime, file->modtime) != 0)
STRUCT_STAT st;
if (link_stat(fname, &st, 0) == 0
&& cmp_time(st.st_mtime, file->modtime) != 0)
-@@ -566,7 +585,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -569,7 +588,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
/* Change permissions before putting the file into place. */
set_file_attrs(fnametmp, file, NULL, fnamecmp,
/* Change permissions before putting the file into place. */
set_file_attrs(fnametmp, file, NULL, fnamecmp,
-@@ -593,7 +612,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -596,7 +615,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
do_set_file_attrs:
set_file_attrs(fnametmp, file, NULL, fnamecmp,
do_set_file_attrs:
set_file_attrs(fnametmp, file, NULL, fnamecmp,
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
dit(bf(--super)) This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
activities include: preserving users via the bf(--owner) option, preserving
dit(bf(--super)) This tells the receiving side to attempt super-user
activities even if the receiving rsync wasn't run by the super-user. These
activities include: preserving users via the bf(--owner) option, preserving
sender's value (requires bf(--owner) and super-user privileges).
it() A bf(g) means the group is different and is being updated to the
sender's value (requires bf(--group) and the authority to set the group).
sender's value (requires bf(--owner) and super-user privileges).
it() A bf(g) means the group is different and is being updated to the
sender's value (requires bf(--group) and the authority to set the group).
-@@ -105,6 +105,8 @@ static int stat_xattr(const char *fname, STRUCT_STAT *fst)
+@@ -107,6 +107,8 @@ static int stat_xattr(const char *fname, STRUCT_STAT *fst)
static void failed(char const *what, char const *where)
{
fprintf(stderr, PROGRAM ": %s %s: %s\n",
static void failed(char const *what, char const *where)
{
fprintf(stderr, PROGRAM ": %s %s: %s\n",
-@@ -112,12 +114,29 @@ static void failed(char const *what, char const *where)
+@@ -114,12 +116,29 @@ static void failed(char const *what, char const *where)
(long)minor(buf.st_rdev));
} else /* NB: use double for size since it might not fit in a long. */
printf("%12.0f", (double)buf.st_size);
(long)minor(buf.st_rdev));
} else /* NB: use double for size since it might not fit in a long. */
printf("%12.0f", (double)buf.st_size);
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
+ {"atimes", 'U', POPT_ARG_NONE, &display_atimes, 0, 0, 0},
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
+ {"atimes", 'U', POPT_ARG_NONE, &display_atimes, 0, 0, 0},
+ {"link-times", 'l', POPT_ARG_NONE, &link_times, 0, 0, 0 },
+ {"link-owner", 'L', POPT_ARG_NONE, &link_owner, 0, 0, 0 },
- {"fake-super", 'f', POPT_ARG_VAL, &am_root, -1, 0, 0 },
- #endif
-@@ -197,6 +209,7 @@ static void tls_usage(int ret)
+@@ -203,6 +215,7 @@ static void tls_usage(int ret)
fprintf(F,"usage: " PROGRAM " [OPTIONS] FILE ...\n");
fprintf(F,"Trivial file listing program for portably checking rsync\n");
fprintf(F,"\nOptions:\n");
+ fprintf(F," -U, --atimes display access (last-used) times\n");
fprintf(F,"usage: " PROGRAM " [OPTIONS] FILE ...\n");
fprintf(F,"Trivial file listing program for portably checking rsync\n");
fprintf(F,"\nOptions:\n");
+ fprintf(F," -U, --atimes display access (last-used) times\n");
-@@ -130,9 +130,13 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+@@ -131,9 +131,13 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
-@@ -141,7 +145,7 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+@@ -142,7 +146,7 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
-@@ -155,12 +159,12 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+@@ -156,12 +160,12 @@ int set_modtime(const char *fname, time_t modtime, mode_t mode)