about summary refs log tree commit diff
path: root/posix/getopt.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-02-26 01:22:06 +0000
committerUlrich Drepper <drepper@redhat.com>2009-02-26 01:22:06 +0000
commit2e6d6bacc2f0a30f7dbebc977d52904d4a823c45 (patch)
tree064e0c5286c1a9b95a4891a6ba4f2a2f9c5eceb5 /posix/getopt.h
parent67108e401faade00a6aaf4e59b5b986345f1123f (diff)
downloadglibc-2e6d6bacc2f0a30f7dbebc977d52904d4a823c45.tar.gz
glibc-2e6d6bacc2f0a30f7dbebc977d52904d4a823c45.tar.xz
glibc-2e6d6bacc2f0a30f7dbebc977d52904d4a823c45.zip
* include/features.h: If no feature selection given and we select
	by default a POSIX mode, also define __USE_POSIX_IMPLICITLY.
	* posix/Versions: Export __posix_getopt.
	* posix/getopt.c (_getopt_initialize): Take additional parameter.
	Use it to alternatively initialize __posixly_correct.
	(_getopt_internal_r): Take addition parameter.  Pass on to
	_getopt_initialize.
	(_getopt_internal): Take addition parameter.  Pass on to
	_getopt_internal_r.
	(getopt): Pass additional zero to _getopt_internal.
	(__posix_getopt): New function.
	* posix/getopt.h: Add redirection for getopt.
	* posix/getopt1.c (getopt_long): Pass additional zero to
	_getopt_internal.
	(getopt_long_only): Likewise.
	(_getopt_long_r): Pass additional zero to _getopt_internal_r.
	(_getopt_long_only_r): Likewise.
	* posix/getopt_int.h: Adjust declarations of _getopt_internal and
	_getopt_internal_r.
Diffstat (limited to 'posix/getopt.h')
-rw-r--r--posix/getopt.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/posix/getopt.h b/posix/getopt.h
index b7a026c535..ff0251dec0 100644
--- a/posix/getopt.h
+++ b/posix/getopt.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1994,1996-1999,2001,2003,2004
+   Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -151,6 +151,22 @@ struct option
    errors, only prototype getopt for the GNU C library.  */
 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
        __THROW;
+
+# if defined __need_getopt && defined __USE_POSIX2 \
+  && !defined __USE_POSIX_IMPLICITLY && !defined __USE_GNU
+/* The GNU getopt has more functionality than the standard version.  The
+   additional functionality can be disable at runtime.  This redirection
+   helps to also do this at runtime.  */
+#  ifdef __REDIRECT
+  extern int __REDIRECT (getopt, (int ___argc, char *const *___argv,
+				  const char *__shortopts),
+			 __posix_getopt) __THROW;
+#  else
+extern int __posix_getopt (int ___argc, char *const *___argv,
+			   const char *__shortopts) __THROW;
+#   define getopt __posix_getopt
+#  endif
+# endif
 #else /* not __GNU_LIBRARY__ */
 extern int getopt ();
 #endif /* __GNU_LIBRARY__ */