Eric Blake wrote on 2009-11-17: > unsetenv(name) only cleared the first instance, even if (ab)use of > putenv, or assignment to environ, included duplicates of name. > > * m4/setenv.m4 (gl_FUNC_UNSETENV): Check for bug. > * lib/unsetenv.c (rpl_unsetenv): Work around it.
I'm adding doc about this workaround: 2009-12-09 Bruno Haible <br...@clisp.org> * doc/posix-functions/unsetenv.texi: Mention Solaris 10 bug for which a workaround was added on 2009-11-17. *** doc/posix-functions/unsetenv.texi.orig 2009-12-09 21:59:08.000000000 +0100 --- doc/posix-functions/unsetenv.texi 2009-12-09 21:57:17.000000000 +0100 *************** *** 19,24 **** --- 19,28 ---- On some platforms, this function does not fail with @samp{EINVAL} when passed a null pointer, an empty string, or a string containing @samp{=}: FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8. + @item + This function removes only the first value association for the given + environment variable, not all of them, on some platforms: + Solaris 10. @end itemize Portability problems not fixed by Gnulib: