/*
- * Sherlock Library -- Shell-Like Case-Insensitive Pattern Matching (currently only '?' and '*')
+ * UCW Library -- Shell-Like Case-Insensitive Pattern Matching (currently only '?' and '*')
*
- * (c) 1997 Martin Mares, <mj@atrey.karlin.mff.cuni.cz>
+ * (c) 1997 Martin Mares <mj@ucw.cz>
+ *
+ * This software may be freely distributed and used according to the terms
+ * of the GNU Lesser General Public License.
*/
-#include <stdio.h>
-#include <string.h>
-
-#include "lib.h"
-#include "string.h"
+#include "lib/lib.h"
+#include "lib/chartype.h"
-int
-match_pattern_nocase(byte *p, byte *s)
-{
- while (*p)
- {
- if (*p == '?' && *s)
- p++, s++;
- else if (*p == '*')
- {
- int z = p[1];
+#define Convert(x) Cupcase(x)
+#define MATCH_FUNC_NAME match_pattern_nocase
- if (!z)
- return 1;
- while (s = strchr(s, z))
- {
- if (match_pattern_nocase(p+1, s))
- return 1;
- s++;
- }
- return 0;
- }
- else
- {
- if (*p == '\\' && p[1])
- p++;
- if (Cupcase(*p++) != Cupcase(*s++))
- return 0;
- }
- }
- return !*s;
-}
+#include "lib/patmatch.h"