From: Wayne Davison Date: Mon, 2 Jul 2007 21:29:49 +0000 (+0000) Subject: Make option variables a little clearer by using separate FOO_ndx X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/9742b386b3d5b3010675aef9febaffbf8ab2d2c0 Make option variables a little clearer by using separate FOO_ndx values to index into the file-list extra-attribute array instead of abusing the preserve_FOO variables. --- diff --git a/compat.c b/compat.c index 527485dd..544bba76 100644 --- a/compat.c +++ b/compat.c @@ -56,6 +56,9 @@ extern char *partial_dir; extern char *dest_option; extern struct filter_list_struct filter_list; +/* These index values are for the file-list's extra-attribute array. */ +int uid_ndx, gid_ndx, acls_ndx, xattrs_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 * of that protocol for it to be advertised as available. */ @@ -92,13 +95,13 @@ void setup_protocol(int f_out,int f_in) else file_extra_cnt++; if (preserve_uid) - preserve_uid = ++file_extra_cnt; + uid_ndx = ++file_extra_cnt; if (preserve_gid) - preserve_gid = ++file_extra_cnt; + gid_ndx = ++file_extra_cnt; if (preserve_acls && !am_sender) - preserve_acls = ++file_extra_cnt; + acls_ndx = ++file_extra_cnt; if (preserve_xattrs) - preserve_xattrs = ++file_extra_cnt; + xattrs_ndx = ++file_extra_cnt; if (remote_protocol == 0) { if (am_server && !local_server) diff --git a/rsync.h b/rsync.h index 2401d8f9..be5831c0 100644 --- a/rsync.h +++ b/rsync.h @@ -580,10 +580,10 @@ struct file_struct { }; extern int file_extra_cnt; -extern int preserve_uid; -extern int preserve_gid; -extern int preserve_acls; -extern int preserve_xattrs; +extern int uid_ndx; +extern int gid_ndx; +extern int acls_ndx; +extern int xattrs_ndx; #define FILE_STRUCT_LEN (offsetof(struct file_struct, basename)) #define EXTRA_LEN (sizeof (union file_extras)) @@ -614,10 +614,10 @@ extern int preserve_xattrs; #define F_DEPTH(f) REQ_EXTRA(f, 1)->num /* When the associated option is on, all entries will have these present: */ -#define F_OWNER(f) REQ_EXTRA(f, preserve_uid)->unum -#define F_GROUP(f) REQ_EXTRA(f, preserve_gid)->unum -#define F_ACL(f) REQ_EXTRA(f, preserve_acls)->num -#define F_XATTR(f) REQ_EXTRA(f, preserve_xattrs)->num +#define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum +#define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum +#define F_ACL(f) REQ_EXTRA(f, acls_ndx)->num +#define F_XATTR(f) REQ_EXTRA(f, xattrs_ndx)->num #define F_NDX(f) REQ_EXTRA(f, ic_ndx)->num /* These items are per-entry optional and mutally exclusive: */