root/maint/gnulib/lib/getopt-pfx-ext.h

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

INCLUDED FROM


   1 /* getopt (GNU extensions) gnulib wrapper header.
   2    Copyright (C) 1989-2021 Free Software Foundation, Inc.
   3    This file is part of gnulib.
   4    Unlike most of the getopt implementation, it is NOT shared
   5    with the GNU C Library.
   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 _GETOPT_PFX_EXT_H
  21 #define _GETOPT_PFX_EXT_H 1
  22 
  23 /* This header should not be used directly; include getopt.h instead.
  24    It does not have a protective #error, because the guard macro for
  25    getopt.h in gnulib is not fixed.  */
  26 
  27 /* Standalone applications should #define __GETOPT_PREFIX to an
  28    identifier that prefixes the external functions and variables
  29    defined in getopt-core.h and getopt-ext.h.  Systematically
  30    rename identifiers so that they do not collide with the system
  31    functions and variables.  Renaming avoids problems with some
  32    compilers and linkers.  */
  33 #ifdef __GETOPT_PREFIX
  34 # ifndef __GETOPT_ID
  35 #  define __GETOPT_CONCAT(x, y) x ## y
  36 #  define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
  37 #  define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
  38 # endif
  39 # undef getopt_long
  40 # undef getopt_long_only
  41 # undef option
  42 # undef _getopt_internal
  43 # define getopt_long __GETOPT_ID (getopt_long)
  44 # define getopt_long_only __GETOPT_ID (getopt_long_only)
  45 # define option __GETOPT_ID (option)
  46 # define _getopt_internal __GETOPT_ID (getopt_internal)
  47 
  48 /* The system's getopt.h may have already included getopt-ext.h to
  49    declare the unprefixed identifiers.  Undef _GETOPT_EXT_H so that
  50    getopt-ext.h declares them with prefixes.  */
  51 # undef _GETOPT_EXT_H
  52 #endif
  53 
  54 /* Standalone applications get correct prototypes for getopt_long and
  55    getopt_long_only; they declare "char **argv".  For backward
  56    compatibility with old applications, if __GETOPT_PREFIX is not
  57    defined, we supply GNU-libc-compatible, but incorrect, prototypes
  58    using "char *const *argv".  (GNU libc is stuck with the incorrect
  59    prototypes, as they are baked into older versions of LSB.)  */
  60 #ifndef __getopt_argv_const
  61 # if defined __GETOPT_PREFIX
  62 #  define __getopt_argv_const /* empty */
  63 # else
  64 #  define __getopt_argv_const const
  65 # endif
  66 #endif
  67 
  68 #include <getopt-ext.h>
  69 
  70 #endif /* _GETOPT_PFX_EXT_H */

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