Listing 1: Header file for pattern matching functions
/*--------------------------------------------------------------*/
/* Copyright (c)1997 by David R. Tribble, all rights reserved. */
/*--------------------------------------------------------------*/
#ifndef fpattern_h
#define fpattern_h 1
#ifdef __cplusplus
extern "C"
{
#endif
/* Identification */
#ifndef NO_H_IDENT
static const char fpattern_h_id[] =
"@(#)lib/fpattern.h 1.03";
#endif
/* Manifest constants */
#define FPAT_QUOTE '\\' /* Quotes a special char */
#define FPAT_QUOTE2 '´' /* Quotes a special char */
#define FPAT_DEL '/' /* Path delimiter */
#define FPAT_DEL2 '\\' /* Path delimiter */
#define FPAT_DOT '.' /* Dot char */
#define FPAT_NOT '!' /* Exclusion */
#define FPAT_ANY '?' /* Any one char */
#define FPAT_CLOS '*' /* Zero or more chars */
#define FPAT_CLOSP '\x1A' /* Zero or more nondelimiters */
#define FPAT_SET_L '[' /* Set/range open bracket */
#define FPAT_SET_R ']' /* Set/range close bracket */
#define FPAT_SET_NOT '!' /* Set exclusion */
#define FPAT_SET_THRU '-' /* Set range of chars */
/* Model-dependent aliases */
#ifdef __MSDOS__
#if defined(__SMALL__)
#define fpattern_isvalid Sfpattern_isvalid
#define fpattern_match Sfpattern_match
#define fpattern_matchn Sfpattern_matchn
#elif defined(__LARGE__)
#define fpattern_isvalid Lfpattern_isvalid
#define fpattern_match Lfpattern_match
#define fpattern_matchn Lfpattern_matchn
#elif defined(__COMPACT__)
#define fpattern_isvalid Cfpattern_isvalid
#define fpattern_match Cfpattern_match
#define fpattern_matchn Cfpattern_matchn
#elif defined(__MEDIUM__)
#define fpattern_isvalid Mfpattern_isvalid
#define fpattern_match Mfpattern_match
#define fpattern_matchn Mfpattern_matchn
#elif defined(__HUGE__)
#define fpattern_isvalid Hfpattern_isvalid
#define fpattern_match Hfpattern_match
#define fpattern_matchn Hfpattern_matchn
#elif defined(__TINY__)
#define fpattern_isvalid Tfpattern_isvalid
#define fpattern_match Tfpattern_match
#define fpattern_matchn Tfpattern_matchn
#else
#error "Memory model is not defined."
#endif
#endif /* __MSDOS__ */
/* Public functions */
extern int fpattern_isvalid(const char *pat);
extern int fpattern_match(const char *pat, const char *fname);
extern int fpattern_matchn(const char *pat, const char *fname);
#ifdef __cplusplus
}
#endif
#endif /* fpattern_h */
/* End fpattern.h */
/* End of File */