My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
resources
fegetopt.h
Go to the documentation of this file.
1
/* Declarations for getopt.
2
Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
3
4
This program is free software; you can redistribute it and/or modify it
5
under the terms of the GNU General Public License as published by the
6
Free Software Foundation; either version 2, or (at your option) any
7
later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
17
/*
18
obachman 9/99: adapted to Singular by
19
* adding prefix fe_ to global variables
20
* extended fe_option structure
21
*/
22
23
#ifndef FEGETOPT_H
24
#define FEGETOPT_H 1
25
26
#ifdef __cplusplus
27
extern
"C"
{
28
#endif
29
30
/* For communication from `getopt' to the caller.
31
When `getopt' finds an option that takes an argument,
32
the argument value is returned here.
33
Also, when `ordering' is RETURN_IN_ORDER,
34
each non-option ARGV-element is returned here. */
35
36
extern
char
*
fe_optarg
;
37
38
/* Index in ARGV of the next element to be scanned.
39
This is used for communication to and from the caller
40
and for communication between successive calls to `getopt'.
41
42
On entry to `getopt', zero means this is the first call; initialize.
43
44
When `getopt' returns EOF, this is the index of the first of the
45
non-option elements that the caller should itself scan.
46
47
Otherwise, `optind' communicates from one call to the next
48
how much of ARGV has been scanned so far. */
49
50
extern
int
fe_optind
;
51
52
/* Callers store zero here to inhibit the error message `getopt' prints
53
for unrecognized options. */
54
55
extern
int
fe_opterr
;
56
57
/* Set to an option character which was unrecognized. */
58
59
extern
int
fe_optopt
;
60
61
/* Describe the long-named options requested by the application.
62
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
63
of `struct option' terminated by an element containing a name which is
64
zero.
65
66
The field `has_arg' is:
67
no_argument (or 0) if the option does not take an argument,
68
required_argument (or 1) if the option requires an argument,
69
optional_argument (or 2) if the option takes an optional argument.
70
71
To have a long-named option do something other than set an `int' to
72
a compiled-in constant, such as set a value from `optarg', set the
73
`val' field to a nonzero value (the equivalent single-letter option
74
character, if there is one).
75
For long options `getopt' returns the contents of the `val' field. */
76
77
typedef
enum
{
feOptUntyped
,
feOptBool
,
feOptInt
,
feOptString
}
feOptType
;
78
struct
fe_option
79
{
80
#if __STDC__
81
const
char
*
name
;
82
#else
83
char
*
name
;
84
#endif
85
/* has_arg can't be an enum because some compilers complain about
86
type mismatches in all the code that assumes it is an int. */
87
int
has_arg
;
88
int
val
;
89
/* Stuff added for Singular */
90
const
char
*
arg_name
;
/* name of argument, for display in help */
91
const
char
*
help
;
/* (short) help string */
92
feOptType
type
;
/* type of argument, if has_arg > 0 */
93
void
*
value
;
/* (default) value of option */
94
int
set
;
/* only relevant for strings: 0 if not set, 1 if set */
95
};
96
97
/* Names for the values of the `has_arg' field of `struct option'. */
98
99
#define no_argument 0
100
#define required_argument 1
101
#define optional_argument 2
102
103
#if defined(__STDC__) || defined(PROTO) || defined(__cplusplus)
104
extern
int
fe_getopt
(
int
argc,
char
*
const
*argv,
const
char
*shortopts);
105
extern
int
fe_getopt_long
(
int
argc,
char
*
const
*argv,
const
char
*shortopts,
106
const
struct
fe_option
*longopts,
int
*longind);
107
extern
int
fe_getopt_long_only
(
int
argc,
char
*
const
*argv,
108
const
char
*shortopts,
109
const
struct
fe_option
*longopts,
int
*longind);
110
111
/* Internal only. Users should not call this directly. */
112
extern
int
_fe_getopt_internal
(
int
argc,
char
*
const
*argv,
113
const
char
*shortopts,
114
const
struct
fe_option
*longopts,
int
*longind,
115
int
long_only);
116
#else
/* not __STDC__ */
117
extern
int
fe_getopt
();
118
extern
int
fe_getopt_long
();
119
extern
int
fe_getopt_long_only
();
120
121
extern
int
_fe_getopt_internal
();
122
#endif
/* not __STDC__ */
123
124
#ifdef __cplusplus
125
}
126
#endif
127
128
#endif
/* _GETOPT_H */
fe_optarg
char * fe_optarg
Definition
fegetopt.c:94
fe_opterr
int fe_opterr
Definition
fegetopt.c:123
fe_optind
int fe_optind
Definition
fegetopt.c:109
fe_optopt
int fe_optopt
Definition
fegetopt.c:130
feOptType
feOptType
Definition
fegetopt.h:77
feOptInt
@ feOptInt
Definition
fegetopt.h:77
feOptUntyped
@ feOptUntyped
Definition
fegetopt.h:77
feOptBool
@ feOptBool
Definition
fegetopt.h:77
feOptString
@ feOptString
Definition
fegetopt.h:77
fe_option::val
int val
Definition
fegetopt.h:88
fe_option::set
int set
Definition
fegetopt.h:94
_fe_getopt_internal
int _fe_getopt_internal(int argc, char *const *argv, const char *shortopts, const struct fe_option *longopts, int *longind, int long_only)
Definition
fegetopt.c:325
fe_getopt_long
int fe_getopt_long(int argc, char *const *argv, const char *shortopts, const struct fe_option *longopts, int *longind)
Definition
fegetopt.c:664
fe_option::arg_name
const char * arg_name
Definition
fegetopt.h:90
fe_option::name
char * name
Definition
fegetopt.h:83
fe_getopt
int fe_getopt(int argc, char *const *argv, const char *shortopts)
Definition
fegetopt.c:653
fe_option::help
const char * help
Definition
fegetopt.h:91
fe_option::has_arg
int has_arg
Definition
fegetopt.h:87
fe_getopt_long_only
int fe_getopt_long_only(int argc, char *const *argv, const char *shortopts, const struct fe_option *longopts, int *longind)
Definition
fegetopt.c:674
fe_option::type
feOptType type
Definition
fegetopt.h:92
fe_option::value
void * value
Definition
fegetopt.h:93
fe_option
Definition
fegetopt.h:79
Generated on
for My Project by
doxygen 1.17.0
for
Singular