use the provided enum for has_arg

This commit is contained in:
K. Richard Pixley 1992-10-16 05:49:54 +00:00
parent b396595a9c
commit 4100543aee
2 changed files with 25 additions and 15 deletions

View File

@ -1,5 +1,7 @@
Thu Oct 15 21:43:22 1992 K. Richard Pixley (rich@sendai.cygnus.com)
* getopt.h (struct option): use the provided enum for has_arg.
* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING,
LUCID_DEMANGLING): ultrix compilers require enums to be
enums and ints to be ints and casts where they meet. cast some

View File

@ -1,9 +1,9 @@
/* Declarations for getopt.
Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
@ -11,13 +11,17 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef _GETOPT_H
#define _GETOPT_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* For communication from `getopt' to the caller.
When `getopt' finds an option that takes an argument,
the argument value is returned here.
@ -66,6 +70,15 @@ extern int opterr;
one). For long options that have a zero `flag' field, `getopt'
returns the contents of the `val' field. */
/* Names for the values of the `has_arg' field of `struct option'. */
enum _argtype
{
no_argument,
required_argument,
optional_argument
};
struct option
{
#if __STDC__
@ -75,20 +88,11 @@ struct option
#endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
enum _argtype has_arg;
int *flag;
int val;
};
/* Names for the values of the `has_arg' field of `struct option'. */
enum _argtype
{
no_argument,
required_argument,
optional_argument
};
#if __STDC__
extern int getopt (int argc, char *const *argv, const char *shortopts);
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
@ -110,4 +114,8 @@ extern int getopt_long_only ();
extern int _getopt_internal ();
#endif /* not __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* _GETOPT_H */