if (am_server) {
if (!checksum_seed)
checksum_seed = time(NULL);
---- orig/exclude.c 2005-02-08 19:06:38
+--- orig/exclude.c 2005-02-11 10:53:14
+++ exclude.c 2005-02-08 18:34:22
@@ -53,7 +53,8 @@ struct filter_list_struct server_filter_
#define MAX_RULE_PREFIX (16)
/* The dirbuf is set by push_local_filters() to the current subdirectory
* relative to curr_dir that is being processed. The path always has a
@@ -678,6 +679,10 @@ static const char *parse_rule_tok(const
- if ((s = RULE_MATCH(s, "exclude")) != NULL)
+ if ((s = RULE_STRCMP(s, "exclude")) != NULL)
ch = '-';
break;
+ case 'h':
-+ if ((s = RULE_MATCH(s, "hide")) != NULL)
++ if ((s = RULE_STRCMP(s, "hide")) != NULL)
+ ch = 'H';
+ break;
case 'i':
- if ((s = RULE_MATCH(s, "include")) != NULL)
+ if ((s = RULE_STRCMP(s, "include")) != NULL)
ch = '+';
@@ -686,6 +691,19 @@ static const char *parse_rule_tok(const
- if ((s = RULE_MATCH(s, "merge")) != NULL)
+ if ((s = RULE_STRCMP(s, "merge")) != NULL)
ch = '.';
break;
+ case 'p':
-+ if ((s = RULE_MATCH(s, "protect")) != NULL)
++ if ((s = RULE_STRCMP(s, "protect")) != NULL)
+ ch = 'P';
+ break;
+ case 's':
-+ if ((s = RULE_MATCH(s, "send")) != NULL)
++ if ((s = RULE_STRCMP(s, "send")) != NULL)
+ ch = 'S';
+ break;
+ case 'u':
-+ if ((s = RULE_MATCH(s, "unprotect")) != NULL)
++ if ((s = RULE_STRCMP(s, "unprotect")) != NULL)
+ ch = 'U';
+ break;
+
#define MATCHFLG_FINISH_SETUP (1<<13)/* per-dir merge file needs setup */
#define MATCHFLG_NEGATE (1<<14)/* rule matches when pattern does not */
#define MATCHFLG_CVS_IGNORE (1<<15)/* rule was -C or :C */
-+#define MATCHFLG_SENDER_SIDE (1<<16)/* rule applies to the sender side */
-+#define MATCHFLG_RECEIVER_SIDE (1<<17)/* rule applies to the receiver side */
++#define MATCHFLG_SENDER_SIDE (1<<16)/* rule applies to the sending side */
++#define MATCHFLG_RECEIVER_SIDE (1<<17)/* rule applies to the receiving side */
#define MATCHFLGS_FROM_CONTAINER (MATCHFLG_ABS_PATH | MATCHFLG_INCLUDE \
- | MATCHFLG_DIRECTORY | MATCHFLG_NEGATE)
struct filter_struct {
struct filter_struct *next;
---- orig/rsync.yo 2005-02-08 19:06:38
-+++ rsync.yo 2005-02-08 19:10:12
-@@ -678,7 +678,9 @@ send the whole directory (e.g. "dir" or
+--- orig/rsync.yo 2005-02-11 10:53:15
++++ rsync.yo 2005-02-11 10:58:06
+@@ -679,7 +679,9 @@ send the whole directory (e.g. "dir" or
for the directory's contents (e.g. "dir/*") since the wildcard is expanded
by the shell and rsync thus gets a request to transfer individual files, not
the files' parent directory. Files that are excluded from transfer are
This option has no effect unless directory recursion is enabled.
-@@ -725,6 +727,9 @@ See bf(--delete) (which is implied) for
+@@ -726,6 +728,9 @@ See bf(--delete) (which is implied) for
dit(bf(--delete-excluded)) In addition to deleting the files on the
receiving side that are not on the sending side, this tells rsync to also
delete any files on the receiving side that are excluded (see bf(--exclude)).
See bf(--delete) (which is implied) for more details on file-deletion.
dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
-@@ -1243,6 +1248,10 @@ bf(exclude, -) specifies an exclude patt
+@@ -1255,6 +1260,10 @@ bf(exclude, -) specifies an exclude patt
bf(include, +) specifies an include pattern. nl()
bf(merge, .) specifies a merge-file to read for more rules. nl()
bf(dir-merge, :) specifies a per-directory merge-file. nl()
bf(clear, !) clears the current include/exclude list (takes no arg) nl()
)
-@@ -1267,8 +1276,8 @@ the bf(--include-from)/bf(--exclude-from
+@@ -1279,8 +1288,8 @@ the bf(--include-from)/bf(--exclude-from
manpagesection(INCLUDE/EXCLUDE PATTERN RULES)
The include/exclude rules each specify a pattern that is matched against
the names of the files that are going to be transferred. These patterns
can take several forms:
-@@ -1407,7 +1416,9 @@ itemize(
+@@ -1419,7 +1428,9 @@ itemize(
it() You may also specify any of the modifiers for the "+" or "-" rules
(below) in order to have the rules that are read-in from the file
default to having that modifier set. For instance, "merge,-/_.excl" would
)
The following modifiers are accepted after a "+" or "-":
-@@ -1423,6 +1434,16 @@ itemize(
+@@ -1435,7 +1446,18 @@ itemize(
it() A bf(C) is used to indicate that all the global CVS-exclude rules
should be inserted as excludes in place of the "-C". No arg should
follow.
+- )
+ it() An bf(s) is used to indicate that the rule applies to the sending
-+ side. When a rule affects the sending side it, prevents files from
++ side. When a rule affects the sending side, it prevents files from
+ being transferred. The default is for a rule to affect both sides
+ unless bf(--delete-excluded) was specified, in which case default rules
-+ become sender-side only. See also the "H" (hide) rule, which is an
-+ alias for the "-" rule with the "s" modifer.
++ become sender-side only. See also the hide (H) and show (S) rules,
++ which are an alternate way to specify server-side includes/excludes.
+ it() An bf(r) is used to indicate that the rule applies to the receiving
-+ side. When a rule affects the receiving side it, prevents files from
-+ being deleted. See the bf(s) modifier for more info. See also the "P"
-+ (protect) rule, which is an alias for the "-" rule with the "r" modifier.
- )
++ side. When a rule affects the receiving side, it prevents files from
++ being deleted. See the bf(s) modifier for more info. See also the
++ protect (P) and unprotect (U) rules, which are an alternate way to
++ specify receiver-side includes/excludes.
++)
Per-directory rules are inherited in all subdirectories of the directory
+ where the merge-file was found unless the 'n' modifier was used. Each