home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
ppc
/
lha_ppc
/
orig_src
/
patmatch.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-08
|
1KB
|
37 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 */
}