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.