Sync with gnulib.

This commit is contained in:
Paul Eggert
2002-12-13 11:24:16 +00:00
parent ec1ef903c3
commit fc659dfd69
11 changed files with 481 additions and 213 deletions

View File

@@ -1,8 +1,5 @@
/* Declarations for getopt.
Copyright (C) 1989-1994, 1996-1999, 2001, 2002 Free Software Foundation,
Inc.
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -15,8 +12,8 @@
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 Foundation,
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _GETOPT_H
@@ -29,16 +26,11 @@
standalone, or this is the first header included in the source file.
If we are being used with glibc, we need to include <features.h>, but
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
not defined, include <stdlib.h>, which will pull in <features.h> for us
if it's from glibc (and will declare getopt). Fall back on <ctype.h> if
<stdlib.h> might not exist. (Why ctype.h? It's guaranteed to exist and it
not defined, include <ctype.h>, which will pull in <features.h> for us
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
doesn't flood the namespace with stuff the way some other headers do.) */
#if !defined __GNU_LIBRARY__
# if HAVE_STDLIB_H || STDC_HEADERS
# include <stdlib.h>
# else
# include <ctype.h>
# endif
# include <ctype.h>
#endif
#ifdef __cplusplus
@@ -145,26 +137,25 @@ struct option
`getopt'. */
#if (defined __STDC__ && __STDC__) || defined __cplusplus
# if defined HAVE_DECL_GETOPT && !HAVE_DECL_GETOPT
# ifdef __GNU_LIBRARY__
# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
# endif /* __GNU_LIBRARY__ */
# endif /* defined HAVE_DECL_GETOPT && !HAVE_DECL_GETOPT */
# endif /* __GNU_LIBRARY__ */
# ifndef __need_getopt
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
extern int getopt_long (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
extern int getopt_long_only (int __argc, char *const *__argv,
extern int getopt_long_only (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int __argc, char *const *__argv,
extern int _getopt_internal (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only);