root/maint/gnulib/lib/glob.in.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 /* glob.h -- Find a path matching a pattern.
   2 
   3    Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
   4 
   5    Written by Derek Price <derek@ximbiot.com> & Paul Eggert <eggert@CS.UCLA.EDU>
   6 
   7    This file is free software: you can redistribute it and/or modify
   8    it under the terms of the GNU Lesser General Public License as
   9    published by the Free Software Foundation; either version 2.1 of the
  10    License, or (at your option) any later version.
  11 
  12    This file is distributed in the hope that it will be useful,
  13    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15    GNU Lesser General Public License for more details.
  16 
  17    You should have received a copy of the GNU Lesser General Public License
  18    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  19 
  20 #ifndef _@GUARD_PREFIX@_GLOB_H
  21 
  22 #if __GNUC__ >= 3
  23 @PRAGMA_SYSTEM_HEADER@
  24 #endif
  25 @PRAGMA_COLUMNS@
  26 
  27 /* The include_next requires a split double-inclusion guard.  */
  28 #if @HAVE_GLOB_H@ && !@REPLACE_GLOB@
  29 # @INCLUDE_NEXT@ @NEXT_GLOB_H@
  30 #endif
  31 
  32 #ifndef _@GUARD_PREFIX@_GLOB_H
  33 #define _@GUARD_PREFIX@_GLOB_H
  34 
  35 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
  36 
  37 /* The definition of _GL_ARG_NONNULL is copied here.  */
  38 
  39 /* The definition of _GL_WARN_ON_USE is copied here.  */
  40 
  41 /* For plain 'restrict', use glibc's __restrict if defined.
  42    Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have
  43    "restrict", and "configure" may have defined "restrict".
  44    Other compilers use __restrict, __restrict__, and _Restrict, and
  45    'configure' might #define 'restrict' to those words, so pick a
  46    different name.  */
  47 #ifndef _Restrict_
  48 # if defined __restrict \
  49      || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
  50      || __clang_major__ >= 3
  51 #  define _Restrict_ __restrict
  52 # elif 199901L <= __STDC_VERSION__ || defined restrict
  53 #  define _Restrict_ restrict
  54 # else
  55 #  define _Restrict_
  56 # endif
  57 #endif
  58 
  59 #ifdef __cplusplus
  60 extern "C" {
  61 #endif
  62 typedef int (*_gl_glob_errfunc_fn) (const char *, int);
  63 #ifdef __cplusplus
  64 }
  65 #endif
  66 
  67 
  68 #if !@HAVE_GLOB_H@ || @REPLACE_GLOB@
  69 
  70 
  71 /* Preparations for including the standard GNU C Library header.  */
  72 
  73 # include <stddef.h>
  74 
  75 /* On some systems, such as AIX 5.1, <sys/stat.h> does a "#define stat stat64".
  76    Make sure this definition is seen before glob-libc.h defines types that
  77    rely on 'struct stat'.  */
  78 # include <sys/stat.h>
  79 
  80 # if @REPLACE_GLOB@
  81 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  82 #   define glob rpl_glob
  83 #   define globfree rpl_globfree
  84 #  endif
  85 # endif
  86 # if @REPLACE_GLOB_PATTERN_P@
  87 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  88 #   define glob_pattern_p rpl_glob_pattern_p
  89 #  endif
  90 # endif
  91 # define __glob_pattern_p glob_pattern_p
  92 
  93 # define __GLOB_GNULIB 1
  94 
  95 
  96 /* Now the standard GNU C Library header should work.  */
  97 # include "glob-libc.gl.h"
  98 
  99 
 100 #endif
 101 
 102 
 103 #if @GNULIB_GLOB@
 104 # if @REPLACE_GLOB@
 105 _GL_FUNCDECL_RPL (glob, int, (const char *_Restrict_ __pattern, int __flags,
 106                               _gl_glob_errfunc_fn __errfunc,
 107                               glob_t *_Restrict_ __pglob)
 108                               _GL_ARG_NONNULL ((1)));
 109 _GL_CXXALIAS_RPL (glob, int, (const char *_Restrict_ __pattern, int __flags,
 110                               _gl_glob_errfunc_fn __errfunc,
 111                               glob_t *_Restrict_ __pglob));
 112 # else
 113 #  if !@HAVE_GLOB@
 114 _GL_FUNCDECL_SYS (glob, int, (const char *_Restrict_ __pattern, int __flags,
 115                               _gl_glob_errfunc_fn __errfunc,
 116                               glob_t *_Restrict_ __pglob)
 117                               _GL_ARG_NONNULL ((1)));
 118 #  endif
 119 _GL_CXXALIAS_SYS (glob, int, (const char *_Restrict_ __pattern, int __flags,
 120                               _gl_glob_errfunc_fn __errfunc,
 121                               glob_t *_Restrict_ __pglob));
 122 # endif
 123 _GL_CXXALIASWARN (glob);
 124 #elif defined GNULIB_POSIXCHECK
 125 # undef glob
 126 # if HAVE_RAW_DECL_GLOB
 127 _GL_WARN_ON_USE (glob,
 128                  "glob is unportable - "
 129                  "use gnulib module glob for portability");
 130 # endif
 131 #endif
 132 
 133 #if @GNULIB_GLOB@
 134 # if @REPLACE_GLOB@
 135 _GL_FUNCDECL_RPL (globfree, void, (glob_t *__pglob) _GL_ARG_NONNULL ((1)));
 136 _GL_CXXALIAS_RPL (globfree, void, (glob_t *__pglob));
 137 # else
 138 #  if !@HAVE_GLOB@
 139 _GL_FUNCDECL_SYS (globfree, void, (glob_t *__pglob) _GL_ARG_NONNULL ((1)));
 140 #  endif
 141 _GL_CXXALIAS_SYS (globfree, void, (glob_t *__pglob));
 142 # endif
 143 _GL_CXXALIASWARN (globfree);
 144 #elif defined GNULIB_POSIXCHECK
 145 # undef globfree
 146 # if HAVE_RAW_DECL_GLOBFREE
 147 _GL_WARN_ON_USE (globfree,
 148                  "globfree is unportable - "
 149                  "use gnulib module glob for portability");
 150 # endif
 151 #endif
 152 
 153 #if @GNULIB_GLOB@
 154 # if @REPLACE_GLOB_PATTERN_P@
 155 _GL_FUNCDECL_RPL (glob_pattern_p, int, (const char *__pattern, int __quote)
 156                                        _GL_ARG_NONNULL ((1)));
 157 _GL_CXXALIAS_RPL (glob_pattern_p, int, (const char *__pattern, int __quote));
 158 # else
 159 #  if !@HAVE_GLOB_PATTERN_P@
 160 _GL_FUNCDECL_SYS (glob_pattern_p, int, (const char *__pattern, int __quote)
 161                                        _GL_ARG_NONNULL ((1)));
 162 #  endif
 163 _GL_CXXALIAS_SYS (glob_pattern_p, int, (const char *__pattern, int __quote));
 164 # endif
 165 _GL_CXXALIASWARN (glob_pattern_p);
 166 #elif defined GNULIB_POSIXCHECK
 167 # undef glob_pattern_p
 168 # if HAVE_RAW_DECL_GLOB_PATTERN_P
 169 _GL_WARN_ON_USE (glob_pattern_p,
 170                  "glob_pattern_p is unportable - "
 171                  "use gnulib module glob for portability");
 172 # endif
 173 #endif
 174 
 175 
 176 #endif /* _@GUARD_PREFIX@_GLOB_H */
 177 #endif /* _@GUARD_PREFIX@_GLOB_H */

/* [previous][next][first][last][top][bottom][index][help] */