home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
ARCHIVERS
/
lhasrc.lzh
/
patmatch.c
< prev
next >
Wrap
Text File
|
1992-05-11
|
1KB
|
38 lines
/*
* Returns true if string s matches pattern p.
*/
#include <ctype.h>
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 */
}