From: Wayne Davison Date: Wed, 30 Jul 2003 06:12:27 +0000 (+0000) Subject: Call wildmatch(), not fnmatch(). X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/fe332038c6776f749b86fcdb81058fb7c244b037 Call wildmatch(), not fnmatch(). --- diff --git a/access.c b/access.c index 25a0680a..1dc73aed 100644 --- a/access.c +++ b/access.c @@ -27,7 +27,7 @@ static int match_hostname(char *host, char *tok) { if (!host || !*host) return 0; - return (fnmatch(tok, host, 0) == 0); + return wildmatch(tok, host); } static int match_binary(char *b1, char *b2, char *mask, int addrlen) diff --git a/authenticate.c b/authenticate.c index 7da25d41..ef4f6af5 100644 --- a/authenticate.c +++ b/authenticate.c @@ -239,7 +239,7 @@ char *auth_server(int f_in, int f_out, int module, char *addr, char *leader) if (!users) return NULL; for (tok=strtok(users," ,\t"); tok; tok = strtok(NULL," ,\t")) { - if (fnmatch(tok, user, 0) == 0) break; + if (wildmatch(tok, user)) break; } free(users); diff --git a/exclude.c b/exclude.c index 3b8b7f0a..a12e3b7e 100644 --- a/exclude.c +++ b/exclude.c @@ -70,12 +70,6 @@ static struct exclude_struct *make_exclude(const char *pattern, int include) if (strpbrk(pattern, "*[?")) { ret->match_flags |= MATCHFLG_WILD; if (strstr(pattern, "**")) { - static int tested; - if (!tested) { - tested = 1; - if (fnmatch("a/b/*","a/b/c/d",FNM_PATHNAME)==0) - rprintf(FERROR,"WARNING: fnmatch FNM_PATHNAME is broken on your system\n"); - } ret->match_flags |= MATCHFLG_WILD2; /* If the pattern starts with **, note that. */ if (*pattern == '*' && pattern[1] == '*') @@ -155,8 +149,6 @@ static int check_one_exclude(char *name, struct exclude_struct *ex, } if (ex->match_flags & MATCHFLG_WILD) { - int fnmatch_flags = (ex->match_flags & MATCHFLG_WILD2)? - 0 : FNM_PATHNAME; /* A non-anchored match with an infix slash and no "**" * needs to match the last slash_cnt+1 name elements. */ if (!match_start && ex->slash_cnt && @@ -168,14 +160,13 @@ static int check_one_exclude(char *name, struct exclude_struct *ex, } name = p+1; } - if (fnmatch(pattern, name, fnmatch_flags) == 0) + if (wildmatch(pattern, name)) return 1; if (ex->match_flags & MATCHFLG_WILD2_PREFIX) { /* If the **-prefixed pattern has a '/' as the next * character, then try to match the rest of the * pattern at the root. */ - if (pattern[2] == '/' && - fnmatch(pattern+3, name, fnmatch_flags) == 0) + if (pattern[2] == '/' && wildmatch(pattern+3, name)) return 1; } else if (!match_start && ex->match_flags & MATCHFLG_WILD2) { @@ -184,7 +175,7 @@ static int check_one_exclude(char *name, struct exclude_struct *ex, * after every slash. */ while ((name = strchr(name, '/')) != NULL) { name++; - if (fnmatch(pattern, name, fnmatch_flags) == 0) + if (wildmatch(pattern, name)) return 1; } } diff --git a/token.c b/token.c index 0b3aa999..9f33436b 100644 --- a/token.c +++ b/token.c @@ -51,7 +51,7 @@ void set_compression(char *fname) strlower(fname); for (tok=strtok(dont," ");tok;tok=strtok(NULL," ")) { - if (fnmatch(tok, fname, 0) == 0) { + if (wildmatch(tok, fname)) { compression_level = 0; break; }