From 1919b885d0de73cbbe7044f942a187db51053956 Mon Sep 17 00:00:00 2001 From: "Andrey A. Chernov" Date: Mon, 23 Feb 2004 04:17:59 +0000 Subject: [PATCH] Try to better mimic GNU getopt.h which does not assume to make visible all unistd.h functions, use _GETOPT_DECLARE define for that. --- include/getopt.h | 16 ++++++++++------ include/unistd.h | 3 +++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/getopt.h b/include/getopt.h index 679dd6d563d7..c29ad4203a76 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -41,12 +41,10 @@ #define _GETOPT_H_ #include -#include /* - * GNU-like getopt_long() + * GNU-like getopt_long() & getopt() for GNU programs. */ -#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) #define no_argument 0 #define required_argument 1 #define optional_argument 2 @@ -66,9 +64,15 @@ struct option { }; __BEGIN_DECLS -int getopt_long __P((int, char * const *, const char *, - const struct option *, int *)); +int getopt_long(int, char * const *, const char *, + const struct option *, int *); +#ifndef _GETOPT_DECLARED +#define _GETOPT_DECLARED +int getopt(int, char * const [], const char *); + +extern char *optarg; /* getopt(3) external variables */ +extern int optind, opterr, optopt; +#endif /* _GETOPT_DECLARED */ __END_DECLS -#endif #endif /* !_GETOPT_H_ */ diff --git a/include/unistd.h b/include/unistd.h index 6a441dd62af2..8901f935cac5 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -371,10 +371,13 @@ ssize_t write(int, const void *, size_t); /* 1003.2-1992 */ #if __POSIX_VISIBLE >= 199209 || __XSI_VISIBLE size_t confstr(int, char *, size_t); +#ifndef _GETOPT_DECLARED +#define _GETOPT_DECLARED int getopt(int, char * const [], const char *); extern char *optarg; /* getopt(3) external variables */ extern int optind, opterr, optopt; +#endif /* _GETOPT_DECLARED */ #endif /* ISO/IEC 9945-1: 1996 */