diff options
Diffstat (limited to 'gl/setenv.c')
| -rw-r--r-- | gl/setenv.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/gl/setenv.c b/gl/setenv.c index ba760d6f..995a0f26 100644 --- a/gl/setenv.c +++ b/gl/setenv.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* Copyright (C) 1992, 1995-2003, 2005-2010 Free Software Foundation, Inc. | 1 | /* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc. |
| 2 | This file is part of the GNU C Library. | 2 | This file is part of the GNU C Library. |
| 3 | 3 | ||
| 4 | This program is free software: you can redistribute it and/or modify | 4 | This program is free software: you can redistribute it and/or modify |
| @@ -15,12 +15,13 @@ | |||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 16 | 16 | ||
| 17 | #if !_LIBC | 17 | #if !_LIBC |
| 18 | # include <config.h> | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc | 18 | /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc |
| 22 | optimizes away the name == NULL test below. */ | 19 | optimizes away the name == NULL test below. */ |
| 23 | #define _GL_ARG_NONNULL(params) | 20 | # define _GL_ARG_NONNULL(params) |
| 21 | |||
| 22 | # define _GL_USE_STDLIB_ALLOC 1 | ||
| 23 | # include <config.h> | ||
| 24 | #endif | ||
| 24 | 25 | ||
| 25 | #include <alloca.h> | 26 | #include <alloca.h> |
| 26 | 27 | ||
| @@ -48,7 +49,7 @@ | |||
| 48 | #endif | 49 | #endif |
| 49 | 50 | ||
| 50 | #if _LIBC | 51 | #if _LIBC |
| 51 | /* This lock protects against simultaneous modifications of `environ'. */ | 52 | /* This lock protects against simultaneous modifications of 'environ'. */ |
| 52 | # include <bits/libc-lock.h> | 53 | # include <bits/libc-lock.h> |
| 53 | __libc_lock_define_initialized (static, envlock) | 54 | __libc_lock_define_initialized (static, envlock) |
| 54 | # define LOCK __libc_lock_lock (envlock) | 55 | # define LOCK __libc_lock_lock (envlock) |
| @@ -64,10 +65,6 @@ __libc_lock_define_initialized (static, envlock) | |||
| 64 | # define clearenv __clearenv | 65 | # define clearenv __clearenv |
| 65 | # define tfind __tfind | 66 | # define tfind __tfind |
| 66 | # define tsearch __tsearch | 67 | # define tsearch __tsearch |
| 67 | #else | ||
| 68 | /* Use the system functions, not the gnulib overrides in this file. */ | ||
| 69 | # undef malloc | ||
| 70 | # undef realloc | ||
| 71 | #endif | 68 | #endif |
| 72 | 69 | ||
| 73 | /* In the GNU C library implementation we try to be more clever and | 70 | /* In the GNU C library implementation we try to be more clever and |
| @@ -106,11 +103,11 @@ static void *known_values; | |||
| 106 | static char **last_environ; | 103 | static char **last_environ; |
| 107 | 104 | ||
| 108 | 105 | ||
| 109 | /* This function is used by `setenv' and `putenv'. The difference between | 106 | /* This function is used by 'setenv' and 'putenv'. The difference between |
| 110 | the two functions is that for the former must create a new string which | 107 | the two functions is that for the former must create a new string which |
| 111 | is then placed in the environment, while the argument of `putenv' | 108 | is then placed in the environment, while the argument of 'putenv' |
| 112 | must be used directly. This is all complicated by the fact that we try | 109 | must be used directly. This is all complicated by the fact that we try |
| 113 | to reuse values once generated for a `setenv' call since we can never | 110 | to reuse values once generated for a 'setenv' call since we can never |
| 114 | free the strings. */ | 111 | free the strings. */ |
| 115 | int | 112 | int |
| 116 | __add_to_environ (const char *name, const char *value, const char *combined, | 113 | __add_to_environ (const char *name, const char *value, const char *combined, |
| @@ -302,7 +299,7 @@ setenv (const char *name, const char *value, int replace) | |||
| 302 | return __add_to_environ (name, value, NULL, replace); | 299 | return __add_to_environ (name, value, NULL, replace); |
| 303 | } | 300 | } |
| 304 | 301 | ||
| 305 | /* The `clearenv' was planned to be added to POSIX.1 but probably | 302 | /* The 'clearenv' was planned to be added to POSIX.1 but probably |
| 306 | never made it. Nevertheless the POSIX.9 standard (POSIX bindings | 303 | never made it. Nevertheless the POSIX.9 standard (POSIX bindings |
| 307 | for Fortran 77) requires this function. */ | 304 | for Fortran 77) requires this function. */ |
| 308 | int | 305 | int |
| @@ -353,6 +350,9 @@ weak_alias (__clearenv, clearenv) | |||
| 353 | #if HAVE_SETENV | 350 | #if HAVE_SETENV |
| 354 | 351 | ||
| 355 | # undef setenv | 352 | # undef setenv |
| 353 | # if !HAVE_DECL_SETENV | ||
| 354 | extern int setenv (const char *, const char *, int); | ||
| 355 | # endif | ||
| 356 | # define STREQ(a, b) (strcmp (a, b) == 0) | 356 | # define STREQ(a, b) (strcmp (a, b) == 0) |
| 357 | 357 | ||
| 358 | int | 358 | int |
