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) 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, * demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING,
LUCID_DEMANGLING): ultrix compilers require enums to be LUCID_DEMANGLING): ultrix compilers require enums to be
enums and ints to be ints and casts where they meet. cast some enums and ints to be ints and casts where they meet. cast some

View File

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