$OpenBSD: patch-include_getopt_h,v 1.1 2004/05/21 00:07:02 brad Exp $
--- include/getopt.h.orig	2004-05-20 19:11:56.000000000 -0400
+++ include/getopt.h	2004-05-20 19:13:24.000000000 -0400
@@ -105,18 +105,16 @@ struct option
    declaration without arguments.  If it is 0, we checked and failed
    to find the declaration so provide a fully prototyped one.  If it
    is 1, we found it so don't provide any declaration at all.  */
-#if !HAVE_DECL_GETOPT
-#if defined (__GNU_LIBRARY__) || defined (HAVE_DECL_GETOPT)
+#if defined (__GNU_LIBRARY__) || (defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT)
 /* Many other libraries have conflicting prototypes for getopt, with
    differences in the consts, in unistd.h.  To avoid compilation
    errors, only prototype getopt for the GNU C library.  */
 extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else
-#ifndef __cplusplus
+#else /* not __GNU_LIBRARY__ */
+# if !defined (HAVE_DECL_GETOPT)
 extern int getopt ();
-#endif /* __cplusplus */
-#endif
-#endif /* !HAVE_DECL_GETOPT */
+# endif
+#endif /* __GNU_LIBRARY__ */
 
 extern int getopt_long (int argc, char *const *argv, const char *shortopts,
 		        const struct option *longopts, int *longind);
