aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic/setenv.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-05-20 10:50:03 +0000
committerUlrich Drepper <drepper@redhat.com>1998-05-20 10:50:03 +0000
commita709dd439a010a88e6e8ae94583e71296008b89e (patch)
treea0c3fe9835f3a05c1ed61ba01d98ee90bbe858f5 /sysdeps/generic/setenv.c
parentb0a01055eb0ff324fd5e2b44fa9687035e5f3204 (diff)
downloadglibc-a709dd439a010a88e6e8ae94583e71296008b89e.tar
glibc-a709dd439a010a88e6e8ae94583e71296008b89e.tar.gz
glibc-a709dd439a010a88e6e8ae94583e71296008b89e.tar.bz2
glibc-a709dd439a010a88e6e8ae94583e71296008b89e.zip
Update.
1998-05-20 Andreas Jaeger <aj@arthur.rhein-neckar.de> * Makeconfig (rpath-link): Add resolvobjdir. (resolvobjdir): New variable. Reported by Peter Breitenlohner <peb@mppmu.mpg.de> [fixes PR libc/633]. 1998-05-20 09:36 Ulrich Drepper <drepper@cygnus.com> * elf/dl-close.c: Call shared object terminators at the right time. Patch by Philippe Troin <phil@fifi.org>. 1998-05-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Make-dist (+tsrcs): Also add *.map for every member of $(extra-libs). * Makefile (distribute): Don't distribute scripts/printsources and scripts/=__ify. Distribute FAQ.in. (rpm/%): Don't pass subdirs to sub-make. * timezone/Makefile: Protect inclusion of z.* by $(avoid-generated) instead of $(no_deps). 1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/setenv.c: Protect against GNU C extension. (KNOWN_VALUE, STORE_VALUE): Do it right. (setenv): Remove unused variable. 1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * timezone/Makefile (tz-cflags): Define TM_GMTOFF and TM_ZONE. (CFLAGS-zdump.c): Add $(tz-cflags). * timezone/zdump.c (abbr): Use TM_ZONE if defined. Add const to return type. 1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * time/tzfile.c (__tzfile_compute): Undo last change. Instead take struct tm parameter and set tm_isdst, tm_zone and tm_offset if use_localtime. * time/tzset.c: Update prototype of __tzfile_compute. (__tz_convert): Pass tp to __tzfile_compute. Don't set tm_isdst, tm_zone and tm_offset here if __use_tzfile. 1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules: Install libc.a even if there are no object file. 1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules (do-makelib): Don't force creating library from scratch, to avoid wasting time and space and to get correct behaviour if $(subdirs) is incomplete. 1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makerules (do-stamp): Make it work when building in source directory.
Diffstat (limited to 'sysdeps/generic/setenv.c')
-rw-r--r--sysdeps/generic/setenv.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c
index 22ea7e551f..b2ebbadfaa 100644
--- a/sysdeps/generic/setenv.c
+++ b/sysdeps/generic/setenv.c
@@ -69,7 +69,8 @@ __libc_lock_define_initialized (static, envlock)
allow arbitrary many changes of the environment given that the used
values are from a small set. Outside glibc this will eat up all
memory after a while. */
-#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH)
+#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
+ && defined __GNUC__)
# define USE_TSEARCH 1
# include <search.h>
@@ -79,18 +80,11 @@ static void *known_values;
# define KNOWN_VALUE(Str) \
({ \
- void **value = tfind (Str, &known_values, (__compar_fn_t) strcmp); \
- if (value != NULL) \
- value = *(const char **) value; \
- value; \
+ void *value = tfind (Str, &known_values, (__compar_fn_t) strcmp); \
+ value != NULL ? *(char **) value : NULL; \
})
# define STORE_VALUE(Str) \
- ({ \
- void **value = tsearch (Str, &known_values, (__compar_fn_t) strcmp); \
- if (value != NULL) \
- value = *(const char **) value; \
- value; \
- })
+ tsearch (Str, &known_values, (__compar_fn_t) strcmp)
#else
# undef USE_TSEARCH
@@ -186,7 +180,6 @@ setenv (name, value, replace)
}
else if (replace)
{
- size_t len = strlen (*ep);
char *new_value;
char *np;