This is patmatch.c in view mode; [Download] [Up]
/* ------------------------------------------------------------------------ */
/* LHa for UNIX */
/* patmatch.c -- path check */
/* */
/* Modified Nobutaka Watazaki */
/* */
/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
/* ------------------------------------------------------------------------ */
#include <stdio.h>
#include <ctype.h>
/*
* Returns true if string s matches pattern p.
*/
int
patmatch(p, s, f)
register char *p; /* pattern */
register char *s; /* string to match */
int f; /* flag for case force */
{
char pc; /* a single character from pattern */
while (pc = ((f && islower(*p)) ? toupper(*p++) : *p++)) {
if (pc == '*') {
do { /* look for match till s exhausted */
if (patmatch(p, s, f))
return (1);
} while (*s++);
return (0);
}
else if (*s == 0)
return (0); /* s exhausted, p not */
else if (pc == '?')
s++; /* matches all, just bump */
else if (pc != ((f && islower(*s)) ? toupper(*s++) : *s++))
return (0);
}
return (!*s); /* p exhausted, ret true if s exhausted */
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.