summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/resv.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/resv.c b/src/resv.c
index 99861f9..ba208c8 100644
--- a/src/resv.c
+++ b/src/resv.c
@@ -228,15 +228,22 @@ int
valid_wild_card_simple(const char *data)
{
const unsigned char *p = (const unsigned char *)data;
+ unsigned char tmpch = '\0';
int nonwild = 0;
- while (*p != '\0')
+ while ((tmpch = *p++))
{
- if ((*p == '\\' && *++p) || (*p && !IsMWildChar(*p)))
- if (++nonwild == ConfigFileEntry.min_nonwildcard_simple)
- return 1;
- if (*p != '\0')
+ if (tmpch == '\\')
+ {
++p;
+ if (++nonwild >= ConfigFileEntry.min_nonwildcard_simple)
+ return 1;
+ }
+ else if (!IsMWildChar(tmpch))
+ {
+ if (++nonwild >= ConfigFileEntry.min_nonwildcard_simple)
+ return 1;
+ }
}
return 0;