1
1
/* Declarations for getopt.
2
Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
4
This file is part of the GNU C Library. Its master source is NOT part of
5
the C library, however. The master source lives in /gd/gnu/lib.
7
The GNU C Library is free software; you can redistribute it and/or
8
modify it under the terms of the GNU Library General Public License as
9
published by the Free Software Foundation; either version 2 of the
10
License, or (at your option) any later version.
12
The GNU C Library 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 GNU
15
Library General Public License for more details.
17
You should have received a copy of the GNU Library General Public
18
License along with the GNU C Library; see the file COPYING.LIB. If
19
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
20
Cambridge, MA 02139, USA. */
3
Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998,
4
1999, 2001, 2003 Free Software Foundation, Inc.
6
This file is part of the GNU C Library.
8
This program is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 2, or (at your option)
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License along
19
with this program; if not, write to the Free Software Foundation,
20
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
28
/* If __GNU_LIBRARY__ is not already defined, either we are being used
29
standalone, or this is the first header included in the source file.
30
If we are being used with glibc, we need to include <features.h>, but
31
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
32
not defined, include <ctype.h>, which will pull in <features.h> for us
33
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
34
doesn't flood the namespace with stuff the way some other headers do.) */
35
#if !defined __GNU_LIBRARY__
95
106
/* Names for the values of the `has_arg' field of `struct option'. */
98
#define required_argument 1
99
#define optional_argument 2
101
#if defined (__STDC__) && __STDC__
108
# define no_argument 0
109
# define required_argument 1
110
# define optional_argument 2
111
#endif /* need getopt */
114
/* Get definitions and prototypes for functions to process the
115
arguments in ARGV (ARGC of them, minus the program name) for
116
options given in OPTS.
118
Return the option character from OPTS just read. Return -1 when
119
there are no more options. For unrecognized options, or options
120
missing arguments, `optopt' is set to the option letter, and '?' is
123
The OPTS string is a list of characters which are recognized option
124
letters, optionally followed by colons, specifying that that letter
125
takes an argument, to be placed in `optarg'.
127
If a letter in OPTS is followed by two colons, its argument is
128
optional. This behavior is specific to the GNU `getopt'.
130
The argument `--' causes premature termination of argument
131
scanning, explicitly telling `getopt' that there are no more
134
If OPTS begins with `--', then non-option arguments are treated as
135
arguments to the option '\0'. This behavior is specific to the GNU
102
138
#ifdef __GNU_LIBRARY__
103
139
/* Many other libraries have conflicting prototypes for getopt, with
104
140
differences in the consts, in stdlib.h. To avoid compilation
105
141
errors, only prototype getopt for the GNU C library. */
106
extern int getopt (int argc, char *const *argv, const char *shortopts);
142
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
107
143
#else /* not __GNU_LIBRARY__ */
108
144
extern int getopt ();
109
145
#endif /* __GNU_LIBRARY__ */
110
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
111
const struct option *longopts, int *longind);
112
extern int getopt_long_only (int argc, char *const *argv,
113
const char *shortopts,
114
const struct option *longopts, int *longind);
147
#ifndef __need_getopt
148
extern int getopt_long (int ___argc, char *const *___argv,
149
const char *__shortopts,
150
const struct option *__longopts, int *__longind);
151
extern int getopt_long_only (int ___argc, char *const *___argv,
152
const char *__shortopts,
153
const struct option *__longopts, int *__longind);
116
155
/* Internal only. Users should not call this directly. */
117
extern int _getopt_internal (int argc, char *const *argv,
118
const char *shortopts,
119
const struct option *longopts, int *longind,
121
#else /* not __STDC__ */
122
extern int getopt ();
123
extern int getopt_long ();
124
extern int getopt_long_only ();
126
extern int _getopt_internal ();
127
#endif /* __STDC__ */
156
extern int _getopt_internal (int ___argc, char *const *___argv,
157
const char *__shortopts,
158
const struct option *__longopts, int *__longind,
129
162
#ifdef __cplusplus
133
#endif /* _GETOPT_H */
166
/* Make sure we later can get all the definitions and declarations. */
169
#endif /* getopt.h */