- return;
- }
- }
-
- if (list)
- for ( ; list[list_len]; list_len++) {}
-
- list = *listp = realloc_array(list, struct exclude_struct *,
- list_len + add_cnt + 1);
- if (!list)
- out_of_memory("add_exclude");
-
- while (pat_len) {
- int incl = xflags & XFLG_DEF_INCLUDE;
- if (!(xflags & XFLG_NO_PREFIXES)
- && (*cp == '-' || *cp == '+')
- && cp[1] == ' ') {
- incl = *cp == '+';
- cp += 2;
- pat_len -= 2;
- }
- list[list_len++] = make_exclude(cp, pat_len, incl);
-
- if (verbose > 2) {
- rprintf(FINFO, "[%s] add_exclude(%s,%s)\n",
- who_am_i(), cp,
- incl ? "include" : "exclude");
+ } else {
+ make_exclude(listp, cp, pat_len, incl);
+
+ if (verbose > 2) {
+ rprintf(FINFO, "[%s] add_exclude(%.*s, %s%s)\n",
+ who_am_i(), pat_len, cp,
+ listp->debug_type,
+ incl ? "include" : "exclude");
+ }