[last-match]
---- orig/exclude.c 2005-02-26 03:22:59
-+++ exclude.c 2005-02-26 03:22:20
-@@ -73,6 +73,7 @@ static BOOL parent_dirscan = False;
+--- old/exclude.c
++++ new/exclude.c
+@@ -76,6 +76,7 @@ static BOOL parent_dirscan = False;
static struct filter_struct **mergelist_parents;
static int mergelist_cnt = 0;
static int mergelist_size = 0;
/* Each filter_list_struct describes a singly-linked list by keeping track
* of both the head and tail pointers. The list is slightly unusual in that
-@@ -231,6 +232,9 @@ static void add_rule(struct filter_list_
+@@ -244,6 +245,9 @@ static void add_rule(struct filter_list_
if (!listp->tail) {
ret->next = listp->head;
listp->head = listp->tail = ret;
} else {
ret->next = listp->tail->next;
listp->tail->next = ret;
-@@ -959,6 +963,7 @@ void parse_filter_file(struct filter_lis
- char line[MAXPATHLEN+MAX_RULE_PREFIX+1]; /* +1 for trailing slash. */
+@@ -970,6 +974,7 @@ void parse_filter_file(struct filter_lis
+ char line[BIGPATHBUFLEN];
char *eob = line + sizeof line - 1;
int word_split = mflags & MATCHFLG_WORD_SPLIT;
+ int save_reversing_rules = reversing_rules;
if (!fname || !*fname)
return;
-@@ -994,6 +999,7 @@ void parse_filter_file(struct filter_lis
+@@ -1005,6 +1010,7 @@ void parse_filter_file(struct filter_lis
}
dirbuf[dirbuf_len] = '\0';
while (1) {
char *s = line;
int ch, overflow = 0;
-@@ -1017,6 +1023,10 @@ void parse_filter_file(struct filter_lis
+@@ -1030,6 +1036,10 @@ void parse_filter_file(struct filter_lis
s = line;
}
*s = '\0';
/* Skip an empty token and (when line parsing) comments. */
if (*line && (word_split || (*line != ';' && *line != '#')))
parse_rule(listp, line, mflags, xflags);
-@@ -1024,6 +1034,7 @@ void parse_filter_file(struct filter_lis
+@@ -1037,6 +1047,7 @@ void parse_filter_file(struct filter_lis
break;
}
fclose(fp);