diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2008-03-07 21:16:35 +0300 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2008-03-07 21:16:35 +0300 |
commit | c622842865283fd7b684683b1f12a6ab1519b09b (patch) | |
tree | 16eb24e8ff8dc0d12bae5ad4e9582cde361ed3b5 /newlib/libc/include | |
parent | 0382d26727416adf62287dfc0ce66aa9a38db95b (diff) |
2008-03-07 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/getopt.h: Hide newlib extensions under
the __need_getopt_newlib flag.
* libc/stdlib/getopt.c: #define __need_getopt_newlib before including
getopt.h. Put entire code under !HAVE_GETOPT to support platforms
with their own getopt implementation.
* configure.host: Specify HAVE_GETOPT for x86-linux.
Diffstat (limited to 'newlib/libc/include')
-rw-r--r-- | newlib/libc/include/getopt.h | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/newlib/libc/include/getopt.h b/newlib/libc/include/getopt.h index f91875714..13cf99c5f 100644 --- a/newlib/libc/include/getopt.h +++ b/newlib/libc/include/getopt.h @@ -82,6 +82,7 @@ Gregory Pietsch's current e-mail address: gpietsch@comcast.net ****************************************************************************/ +/* This is a glibc-extension header file. */ #ifndef GETOPT_H #define GETOPT_H @@ -90,23 +91,9 @@ gpietsch@comcast.net /* include files needed by this include file */ -/* macros defined by this include file */ -#define NO_ARG 0 -#define REQUIRED_ARG 1 -#define OPTIONAL_ARG 2 - -/* For glibc compatibility. */ -#define no_argument NO_ARG -#define required_argument REQUIRED_ARG -#define optional_argument OPTIONAL_ARG - - /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically- - allocated variable of type struct getopt_data. */ -#define GETOPT_DATA_INITIALIZER {0,0,0,0,0} - /* These #defines are to keep the namespace clear... */ -#define getopt_r __getopt_r -#define getopt_long_r __getopt_long_r -#define getopt_long_only_r __getopt_long_only_r +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 #ifdef __cplusplus extern "C" @@ -130,6 +117,25 @@ extern "C" }; +/* While getopt.h is a glibc extension, the following are newlib extensions. + * They are optionally included via the __need_getopt_newlib flag. */ + +#ifdef __need_getopt_newlib + + /* macros defined by this include file */ + #define NO_ARG no_argument + #define REQUIRED_ARG required_argument + #define OPTIONAL_ARG optional_argument + + /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically- + allocated variable of type struct getopt_data. */ + #define GETOPT_DATA_INITIALIZER {0,0,0,0,0} + + /* These #defines are to make accessing the reentrant functions easier. */ + #define getopt_r __getopt_r + #define getopt_long_r __getopt_long_r + #define getopt_long_only_r __getopt_long_only_r + /* The getopt_data structure is for reentrancy. Its members are similar to the externally-defined variables. */ typedef struct getopt_data @@ -138,6 +144,8 @@ extern "C" int optind, opterr, optopt, optwhere; } getopt_data; +#endif /* __need_getopt_newlib */ + /* externally-defined variables */ extern char *optarg; extern int optind; |