LAL 7.7.0.1-678514e
LALgetopt.h
Go to the documentation of this file.
1/* Declarations for getopt.
2 Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000
3 Free Software Foundation, Inc.
4
5 NOTE: The canonical source of this file is maintained with the GNU C Library.
6 Bugs can be reported to bug-glibc@gnu.org.
7
8 This program is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
10 Free Software Foundation; either version 2, or (at your option) any
11 later version.
12
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.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21 USA. */
22
23#ifndef SWIG /* exclude from SWIG interface */
24
25#ifndef _LALGETOPT_H
26#define _LALGETOPT_H
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32/* For communication from `getopt' to the caller.
33 When `getopt' finds an option that takes an argument,
34 the argument value is returned here.
35 Also, when `ordering' is RETURN_IN_ORDER,
36 each non-option ARGV-element is returned here. */
37
38extern char *LALoptarg;
39
40/* Index in ARGV of the next element to be scanned.
41 This is used for communication to and from the caller
42 and for communication between successive calls to `getopt'.
43
44 On entry to `getopt', zero means this is the first call; initialize.
45
46 When `getopt' returns -1, this is the index of the first of the
47 non-option elements that the caller should itself scan.
48
49 Otherwise, `optind' communicates from one call to the next
50 how much of ARGV has been scanned so far. */
51
52extern int LALoptind;
53
54/* Callers store zero here to inhibit the error message `getopt' prints
55 for unrecognized options. */
56
57extern int LALopterr;
58
59/* Set to an option character which was unrecognized. */
60
61extern int LALoptopt;
62
63/* Describe the long-named options requested by the application.
64 The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
65 of `struct LALoption' terminated by an element containing a name which is
66 zero.
67
68 The field `has_arg' is:
69 no_argument (or 0) if the option does not take an argument,
70 required_argument (or 1) if the option requires an argument,
71 optional_argument (or 2) if the option takes an optional argument.
72
73 If the field `flag' is not NULL, it points to a variable that is set
74 to the value given in the field `val' when the option is found, but
75 left unchanged if the option is not found.
76
77 To have a long-named option do something other than set an `int' to
78 a compiled-in constant, such as set a value from `optarg', set the
79 option's `flag' field to zero and its `val' field to a nonzero
80 value (the equivalent single-letter option character, if there is
81 one). For long options that have a zero `flag' field, `getopt'
82 returns the contents of the `val' field. */
83
85{
86 const char *name;
87 /* has_arg can't be an enum because some compilers complain about
88 type mismatches in all the code that assumes it is an int. */
90 int *flag;
91 int val;
92};
93
94/* Names for the values of the `has_arg' field of `struct LALoption'. */
95
96#undef no_argument
97#undef required_argument
98#undef optional_argument
99
100#define no_argument 0
101#define required_argument 1
102#define optional_argument 2
103
104int LALgetopt (int argc, char *const *argv, const char *shortopts);
105int LALgetopt_long (int argc, char *const *argv, const char *shortopts,
106 const struct LALoption *longopts, int *longind);
107int LALgetopt_long_only (int argc, char *const *argv,
108 const char *shortopts,
109 const struct LALoption *longopts, int *longind);
110
111#ifdef __cplusplus
112}
113#endif
114
115#endif /* LALgetopt.h */
116
117#endif /* SWIG */
int LALgetopt_long(int argc, char *const *argv, const char *shortopts, const struct LALoption *longopts, int *longind)
Definition: LALgetopt.c:178
int LALgetopt_long_only(int argc, char *const *argv, const char *shortopts, const struct LALoption *longopts, int *longind)
Definition: LALgetopt.c:190
int LALoptopt
Definition: LALgetopt.c:105
int LALopterr
Definition: LALgetopt.c:99
int LALoptind
Definition: LALgetopt.c:79
int LALgetopt(int argc, char *const *argv, const char *shortopts)
Definition: LALgetopt.c:172
char * LALoptarg
Definition: LALgetopt.c:64
int has_arg
Definition: LALgetopt.h:89
int val
Definition: LALgetopt.h:91
const char * name
Definition: LALgetopt.h:86
int * flag
Definition: LALgetopt.h:90