Mercurial > hg > octave-lyh > gnulib-hg
changeset 13656:bc9f00d2bbf1
unsetenv: fix OpenBSD bug
* m4/setenv.m4 (gl_FUNC_UNSETENV): Check for OpenBSD bug.
* doc/posix-functions/unsetenv.texi (unsetenv): Update
documentation.
Reported by Jim Meyering.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Wed, 08 Sep 2010 13:43:51 -0600 |
parents | d813f5516d9a |
children | 84bb76f4ffb7 |
files | ChangeLog doc/posix-functions/unsetenv.texi m4/setenv.m4 |
diffstat | 3 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2010-09-08 Eric Blake <eblake@redhat.com> + unsetenv: fix OpenBSD bug + * m4/setenv.m4 (gl_FUNC_UNSETENV): Check for OpenBSD bug. + * doc/posix-functions/unsetenv.texi (unsetenv): Update + documentation. + Reported by Jim Meyering. + strtod: work around IRIX 6.5 bug * lib/strtod.c (strtod): Reparse number on shorter string if exponent parse was invalid.
--- a/doc/posix-functions/unsetenv.texi +++ b/doc/posix-functions/unsetenv.texi @@ -4,7 +4,7 @@ POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/unsetenv.html} -Gnulib module: setenv +Gnulib module: unsetenv Portability problems fixed by Gnulib: @itemize @@ -18,7 +18,7 @@ @item On some platforms, this function does not fail with @samp{EINVAL} when passed an empty string or a string containing @samp{=}: -FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8. +FreeBSD 6.0, NetBSD 1.6, OpenBSD 4.7. @item This function removes only the first value association for the given environment variable, not all of them, on some platforms:
--- a/m4/setenv.m4 +++ b/m4/setenv.m4 @@ -1,4 +1,4 @@ -# setenv.m4 serial 17 +# setenv.m4 serial 18 dnl Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -78,10 +78,12 @@ fi dnl Solaris 10 unsetenv does not remove all copies of a name. - AC_CACHE_CHECK([whether unsetenv works on duplicates], + dnl OpenBSD 4.7 unsetenv("") does not fail. + AC_CACHE_CHECK([whether unsetenv obeys POSIX], [gl_cv_func_unsetenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdlib.h> + #include <errno.h> ]], [[ char entry[] = "b=2"; if (putenv ((char *) "a=1")) return 1; @@ -89,6 +91,7 @@ entry[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; + if (!unsetenv ("") || errno != EINVAL) return 4; ]])], [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], [gl_cv_func_unsetenv_works="guessing no"])])