summaryrefslogtreecommitdiff
path: root/lib/putenv.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/putenv.c')
-rw-r--r--lib/putenv.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/putenv.c b/lib/putenv.c
index 512878c478..c39d1b71e1 100644
--- a/lib/putenv.c
+++ b/lib/putenv.c
@@ -18,19 +18,30 @@ Cambridge, MA 02139, USA. */
#include <sys/types.h>
#include <errno.h>
-#ifdef STDC_HEADERS
+
+/* This needs to come after some library #include
+ to get __GNU_LIBRARY__ defined. */
+#ifdef __GNU_LIBRARY__
+/* Don't include stdlib.h for non-GNU C libraries because some of them
+ contain conflicting prototypes for getopt. */
#include <stdlib.h>
-#else
+#endif /* GNU C library. */
+
+#ifndef STDC_HEADERS
extern int errno;
#endif
-#if defined(STDC_HEADERS) || defined(USG)
+#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
#include <string.h>
+#ifndef index
#define index strchr
+#endif
+#ifndef bcopy
#define bcopy(s, d, n) memcpy((d), (s), (n))
-#else /* not (STDC_HEADERS or USG) */
+#endif
+#else
#include <strings.h>
-#endif /* STDC_HEADERS or USG */
+#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -40,10 +51,6 @@ extern int errno;
#define NULL 0
#endif
-#if !__STDC__
-#define const
-#endif
-
extern char **environ;
/* Put STRING, which is of the form "NAME=VALUE", in the environment. */