Octave-Forge - Extra packages for GNU Octave | |
Home · Packages · Developers · Documentation · FAQ · Bugs · Mailing Lists · Links · Code |
00001 /* -*- buffer-read-only: t -*- vi: set ro: */ 00002 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 00003 /* Declarations for getopt. 00004 Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2011 Free Software 00005 Foundation, Inc. 00006 This file is part of the GNU C Library. 00007 00008 This program is free software: you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 3 of the License, or 00011 (at your option) any later version. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00020 00021 #ifndef _GL_GETOPT_H 00022 00023 #if __GNUC__ >= 3 00024 @PRAGMA_SYSTEM_HEADER@ 00025 #endif 00026 @PRAGMA_COLUMNS@ 00027 00028 /* The include_next requires a split double-inclusion guard. We must 00029 also inform the replacement unistd.h to not recursively use 00030 <getopt.h>; our definitions will be present soon enough. */ 00031 #if @HAVE_GETOPT_H@ 00032 # define _GL_SYSTEM_GETOPT 00033 # @INCLUDE_NEXT@ @NEXT_GETOPT_H@ 00034 # undef _GL_SYSTEM_GETOPT 00035 #endif 00036 00037 #ifndef _GL_GETOPT_H 00038 00039 #ifndef __need_getopt 00040 # define _GL_GETOPT_H 1 00041 #endif 00042 00043 /* Standalone applications should #define __GETOPT_PREFIX to an 00044 identifier that prefixes the external functions and variables 00045 defined in this header. When this happens, include the 00046 headers that might declare getopt so that they will not cause 00047 confusion if included after this file (if the system had <getopt.h>, 00048 we have already included it). Then systematically rename 00049 identifiers so that they do not collide with the system functions 00050 and variables. Renaming avoids problems with some compilers and 00051 linkers. */ 00052 #if defined __GETOPT_PREFIX && !defined __need_getopt 00053 # if !@HAVE_GETOPT_H@ 00054 # include <stdlib.h> 00055 # include <stdio.h> 00056 # include <unistd.h> 00057 # endif 00058 # undef __need_getopt 00059 # undef getopt 00060 # undef getopt_long 00061 # undef getopt_long_only 00062 # undef optarg 00063 # undef opterr 00064 # undef optind 00065 # undef optopt 00066 # undef option 00067 # define __GETOPT_CONCAT(x, y) x ## y 00068 # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) 00069 # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) 00070 # define getopt __GETOPT_ID (getopt) 00071 # define getopt_long __GETOPT_ID (getopt_long) 00072 # define getopt_long_only __GETOPT_ID (getopt_long_only) 00073 # define optarg __GETOPT_ID (optarg) 00074 # define opterr __GETOPT_ID (opterr) 00075 # define optind __GETOPT_ID (optind) 00076 # define optopt __GETOPT_ID (optopt) 00077 # define option __GETOPT_ID (option) 00078 # define _getopt_internal __GETOPT_ID (getopt_internal) 00079 #endif 00080 00081 /* Standalone applications get correct prototypes for getopt_long and 00082 getopt_long_only; they declare "char **argv". libc uses prototypes 00083 with "char *const *argv" that are incorrect because getopt_long and 00084 getopt_long_only can permute argv; this is required for backward 00085 compatibility (e.g., for LSB 2.0.1). 00086 00087 This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt', 00088 but it caused redefinition warnings if both unistd.h and getopt.h were 00089 included, since unistd.h includes getopt.h having previously defined 00090 __need_getopt. 00091 00092 The only place where __getopt_argv_const is used is in definitions 00093 of getopt_long and getopt_long_only below, but these are visible 00094 only if __need_getopt is not defined, so it is quite safe to rewrite 00095 the conditional as follows: 00096 */ 00097 #if !defined __need_getopt 00098 # if defined __GETOPT_PREFIX 00099 # define __getopt_argv_const /* empty */ 00100 # else 00101 # define __getopt_argv_const const 00102 # endif 00103 #endif 00104 00105 /* If __GNU_LIBRARY__ is not already defined, either we are being used 00106 standalone, or this is the first header included in the source file. 00107 If we are being used with glibc, we need to include <features.h>, but 00108 that does not exist if we are standalone. So: if __GNU_LIBRARY__ is 00109 not defined, include <ctype.h>, which will pull in <features.h> for us 00110 if it's from glibc. (Why ctype.h? It's guaranteed to exist and it 00111 doesn't flood the namespace with stuff the way some other headers do.) */ 00112 #if !defined __GNU_LIBRARY__ 00113 # include <ctype.h> 00114 #endif 00115 00116 #ifndef __THROW 00117 # ifndef __GNUC_PREREQ 00118 # define __GNUC_PREREQ(maj, min) (0) 00119 # endif 00120 # if defined __cplusplus && __GNUC_PREREQ (2,8) 00121 # define __THROW throw () 00122 # else 00123 # define __THROW 00124 # endif 00125 #endif 00126 00127 /* The definition of _GL_ARG_NONNULL is copied here. */ 00128 00129 #ifdef __cplusplus 00130 extern "C" { 00131 #endif 00132 00133 /* For communication from `getopt' to the caller. 00134 When `getopt' finds an option that takes an argument, 00135 the argument value is returned here. 00136 Also, when `ordering' is RETURN_IN_ORDER, 00137 each non-option ARGV-element is returned here. */ 00138 00139 extern char *optarg; 00140 00141 /* Index in ARGV of the next element to be scanned. 00142 This is used for communication to and from the caller 00143 and for communication between successive calls to `getopt'. 00144 00145 On entry to `getopt', zero means this is the first call; initialize. 00146 00147 When `getopt' returns -1, this is the index of the first of the 00148 non-option elements that the caller should itself scan. 00149 00150 Otherwise, `optind' communicates from one call to the next 00151 how much of ARGV has been scanned so far. */ 00152 00153 extern int optind; 00154 00155 /* Callers store zero here to inhibit the error message `getopt' prints 00156 for unrecognized options. */ 00157 00158 extern int opterr; 00159 00160 /* Set to an option character which was unrecognized. */ 00161 00162 extern int optopt; 00163 00164 #ifndef __need_getopt 00165 /* Describe the long-named options requested by the application. 00166 The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector 00167 of `struct option' terminated by an element containing a name which is 00168 zero. 00169 00170 The field `has_arg' is: 00171 no_argument (or 0) if the option does not take an argument, 00172 required_argument (or 1) if the option requires an argument, 00173 optional_argument (or 2) if the option takes an optional argument. 00174 00175 If the field `flag' is not NULL, it points to a variable that is set 00176 to the value given in the field `val' when the option is found, but 00177 left unchanged if the option is not found. 00178 00179 To have a long-named option do something other than set an `int' to 00180 a compiled-in constant, such as set a value from `optarg', set the 00181 option's `flag' field to zero and its `val' field to a nonzero 00182 value (the equivalent single-letter option character, if there is 00183 one). For long options that have a zero `flag' field, `getopt' 00184 returns the contents of the `val' field. */ 00185 00186 # if !GNULIB_defined_struct_option 00187 struct option 00188 { 00189 const char *name; 00190 /* has_arg can't be an enum because some compilers complain about 00191 type mismatches in all the code that assumes it is an int. */ 00192 int has_arg; 00193 int *flag; 00194 int val; 00195 }; 00196 # define GNULIB_defined_struct_option 1 00197 # endif 00198 00199 /* Names for the values of the `has_arg' field of `struct option'. */ 00200 00201 # define no_argument 0 00202 # define required_argument 1 00203 # define optional_argument 2 00204 #endif /* need getopt */ 00205 00206 00207 /* Get definitions and prototypes for functions to process the 00208 arguments in ARGV (ARGC of them, minus the program name) for 00209 options given in OPTS. 00210 00211 Return the option character from OPTS just read. Return -1 when 00212 there are no more options. For unrecognized options, or options 00213 missing arguments, `optopt' is set to the option letter, and '?' is 00214 returned. 00215 00216 The OPTS string is a list of characters which are recognized option 00217 letters, optionally followed by colons, specifying that that letter 00218 takes an argument, to be placed in `optarg'. 00219 00220 If a letter in OPTS is followed by two colons, its argument is 00221 optional. This behavior is specific to the GNU `getopt'. 00222 00223 The argument `--' causes premature termination of argument 00224 scanning, explicitly telling `getopt' that there are no more 00225 options. 00226 00227 If OPTS begins with `-', then non-option arguments are treated as 00228 arguments to the option '\1'. This behavior is specific to the GNU 00229 `getopt'. If OPTS begins with `+', or POSIXLY_CORRECT is set in 00230 the environment, then do not permute arguments. */ 00231 00232 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) 00233 __THROW _GL_ARG_NONNULL ((2, 3)); 00234 00235 #ifndef __need_getopt 00236 extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, 00237 const char *__shortopts, 00238 const struct option *__longopts, int *__longind) 00239 __THROW _GL_ARG_NONNULL ((2, 3)); 00240 extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, 00241 const char *__shortopts, 00242 const struct option *__longopts, int *__longind) 00243 __THROW _GL_ARG_NONNULL ((2, 3)); 00244 00245 #endif 00246 00247 #ifdef __cplusplus 00248 } 00249 #endif 00250 00251 /* Make sure we later can get all the definitions and declarations. */ 00252 #undef __need_getopt 00253 00254 #endif /* getopt.h */ 00255 #endif /* getopt.h */