1/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2 2005, 2007 Free Software Foundation, Inc. 3 4 This file is part of the GNU C Library. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software Foundation, 18 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 19 20#ifndef _FNMATCH_H 21#define _FNMATCH_H 1 22 23#ifdef __cplusplus 24extern "C" { 25#endif 26 27/* We #undef these before defining them because some losing systems 28 (HP-UX A.08.07 for example) define these in <unistd.h>. */ 29#undef FNM_PATHNAME 30#undef FNM_NOESCAPE 31#undef FNM_PERIOD 32 33/* Bits set in the FLAGS argument to `fnmatch'. */ 34#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ 35#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ 36#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ 37 38#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE 39# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ 40# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ 41# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ 42# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */ 43#endif 44 45/* Value returned by `fnmatch' if STRING does not match PATTERN. */ 46#define FNM_NOMATCH 1 47 48/* This value is returned if the implementation does not support 49 `fnmatch'. Since this is not the case here it will never be 50 returned but the conformance test suites still require the symbol 51 to be defined. */ 52#ifdef _XOPEN_SOURCE 53# define FNM_NOSYS (-1) 54#endif 55 56/* Match NAME against the file name pattern PATTERN, 57 returning zero if it matches, FNM_NOMATCH if not. */ 58extern int fnmatch (const char *__pattern, const char *__name, 59 int __flags); 60 61#ifdef __cplusplus 62} 63#endif 64 65#endif /* fnmatch.h */ 66