glibc (2.38)

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