diff options
-rw-r--r-- | include/getopt.h | 1 | ||||
-rw-r--r-- | include/unistd.h | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/bits/getopt.h | 37 |
3 files changed, 28 insertions, 12 deletions
diff --git a/include/getopt.h b/include/getopt.h index a682f9ca8..4ea31a683 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -1,4 +1,5 @@ /* This file will not be installed if not using gnu getopt. */ +#include <features.h> #include <bits/getopt.h> diff --git a/include/unistd.h b/include/unistd.h index 1ca923130..bb5cfd4bd 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -782,7 +782,7 @@ extern int setlogin (__const char *__name) __THROW __nonnull ((1)); arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. */ # define __need_getopt -# include <bits/getopt.h> +# include <getopt.h> #endif diff --git a/libc/sysdeps/linux/common/bits/getopt.h b/libc/sysdeps/linux/common/bits/getopt.h index fd1cb7b15..4a60e103e 100644 --- a/libc/sysdeps/linux/common/bits/getopt.h +++ b/libc/sysdeps/linux/common/bits/getopt.h @@ -1,5 +1,6 @@ /* Declarations for getopt. - Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1989-1994,1996-1999,2001,2003,2004 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,6 +35,17 @@ # include <ctype.h> #endif +#ifndef __THROW +# ifndef __GNUC_PREREQ +# define __GNUC_PREREQ(maj, min) (0) +# endif +# if defined __cplusplus && __GNUC_PREREQ (2,8) +# define __THROW throw () +# else +# define __THROW +# endif +#endif + #ifdef __cplusplus extern "C" { #endif @@ -133,23 +145,26 @@ struct option arguments to the option '\0'. This behavior is specific to the GNU `getopt'. */ +#if defined __GNU_LIBRARY__ || defined __UCLIBC__ /* 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); +extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) + __THROW; +#else /* not __GNU_LIBRARY__ */ +extern int getopt (); +#endif /* __GNU_LIBRARY__ */ #ifndef __need_getopt -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 (int ___argc, char *const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW; +extern int getopt_long_only (int ___argc, char *const *___argv, const char *__shortopts, - const struct option *__longopts, int *__longind); + const struct option *__longopts, int *__longind) + __THROW; -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only); #endif #ifdef __cplusplus |