#ifdef HAVE_REGEX_H
(tar_re_search && !regexec(preg, exclaim, 0, NULL, 0))) {
#else
- (tar_re_search && mask_match(exclaim, cliplist[0], True))) {
+ (tar_re_search && mask_match_list(exclaim, cliplist, clipn, True))) {
#endif
DEBUG(3,("Skipping file %s\n", exclaim));
return;
#ifdef HAVE_REGEX_H
(tar_re_search && !regexec(preg, finfo.name, 0, NULL, 0)));
#else
- (tar_re_search && mask_match(finfo.name, cliplist[0], True)));
+ (tar_re_search && mask_match_list(finfo.name, cliplist, clipn, True)));
#endif
DEBUG(5, ("Skip = %i, cliplist=%s, file=%s\n", skip, (cliplist?cliplist[0]:NULL), finfo.name));
return ms_fnmatch(pattern, string, Protocol, is_case_sensitive) == 0;
}
+/*******************************************************************
+ A wrapper that handles a list of patters and calls mask_match()
+ on each. Returns True if any of the patterns match.
+*******************************************************************/
+
+BOOL mask_match_list(const char *string, char **list, int listLen, BOOL is_case_sensitive)
+{
+ while (listLen-- > 0) {
+ if (mask_match(string, *list++, is_case_sensitive))
+ return True;
+ }
+ return False;
+}
+
/*********************************************************
Recursive routine that is called by unix_wild_match.
*********************************************************/