- return strchr(str, '*') || strchr(str, '[') || strchr(str, '?');
+ struct exclude_struct *ex, **ex_list;
+ int n;
+ char *p;
+
+ if (!only_included_files || (exclude_the_rest == NULL))
+ return 0;
+
+ if (verbose > 1) {
+ rprintf(FINFO,"(using include-only optimization) ");
+ }
+
+ /* set exclude_list to NULL temporarily so check_exclude */
+ /* will always return true */
+ ex_list = exclude_list;
+ exclude_list = NULL;
+ for (n=0; (ex = ex_list[n]) != NULL; n++) {
+ if (ex == exclude_the_rest)
+ break;
+ p = ex->pattern;
+ while (*p == '/') {
+ /* skip the allowed beginning slashes */
+ p++;
+ }
+ send_file_name(f,flist,p,0,0);
+ }
+ exclude_list = ex_list;
+
+ return 1;