Use the stdint module.
[gnulib.git] / lib / getopt_.h
index efae5aa..3c406e5 100644 (file)
@@ -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,2005
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -15,7 +15,7 @@
 
    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.  */
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #ifndef _GETOPT_H
 
@@ -34,9 +34,8 @@
 #if defined __GETOPT_PREFIX && !defined __need_getopt
 # include <stdlib.h>
 # include <stdio.h>
-# if HAVE_UNISTD_H
-#  include <unistd.h>
-# endif
+# include <unistd.h>
+# undef __need_getopt
 # undef getopt
 # undef getopt_long
 # undef getopt_long_only
    getopt_long_only; they declare "char **argv".  libc uses prototypes
    with "char *const *argv" that are incorrect because getopt_long and
    getopt_long_only can permute argv; this is required for backward
-   compatibility (e.g., for LSB 2.0.1).  */
-#if defined __GETOPT_PREFIX && !defined __need_getopt
-# define __getopt_argv_const /* empty */
-#else
-# define __getopt_argv_const const
+   compatibility (e.g., for LSB 2.0.1).
+
+   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+   but it caused redefinition warnings if both unistd.h and getopt.h were
+   included, since unistd.h includes getopt.h having previously defined
+   __need_getopt.
+
+   The only place where __getopt_argv_const is used is in definitions
+   of getopt_long and getopt_long_only below, but these are visible
+   only if __need_getopt is not defined, so it is quite safe to rewrite
+   the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+#  define __getopt_argv_const /* empty */
+# else
+#  define __getopt_argv_const const
+# endif
 #endif
 
 /* If __GNU_LIBRARY__ is not already defined, either we are being used