ruby-changes:14584
From: akr <ko1@a...>
Date: Tue, 26 Jan 2010 21:42:03 +0900 (JST)
Subject: [ruby-changes:14584] Ruby:r26427 (trunk): * configure.in: test unsetenv returns a value.
akr 2010-01-26 21:41:43 +0900 (Tue, 26 Jan 2010) New Revision: 26427 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26427 Log: * configure.in: test unsetenv returns a value. unsetenv is void in older BSDs (FreeBSD 6 and OpenBSD 4.5 at least). * hash.c (ruby_setenv): don't use the result of unsetenv if unsetenv doesn't return a value. Modified files: trunk/ChangeLog trunk/configure.in trunk/hash.c Index: configure.in =================================================================== --- configure.in (revision 26426) +++ configure.in (revision 26427) @@ -1121,6 +1121,16 @@ mktime timegm gmtime_r clock_gettime gettimeofday\ pread sendfile shutdown sigaltstack) +AC_CACHE_CHECK(for unsetenv returns a value, rb_cv_unsetenv_return_value, + [AC_TRY_COMPILE([ +#include <stdlib.h> +], [int v = unsetenv("foo");], + rb_cv_unsetenv_return_value=yes, + rb_cv_unsetenv_return_value=no)]) +if test "$rb_cv_unsetenv_return_value" = no; then + AC_DEFINE(VOID_UNSETENV) +fi + AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp, [AC_TRY_LINK([@%:@include <setjmp.h> jmp_buf jb; void t(v) int v; {__builtin_longjmp(jb, v);}], Index: ChangeLog =================================================================== --- ChangeLog (revision 26426) +++ ChangeLog (revision 26427) @@ -1,3 +1,11 @@ +Tue Jan 26 21:36:22 2010 Tanaka Akira <akr@f...> + + * configure.in: test unsetenv returns a value. + unsetenv is void in older BSDs (FreeBSD 6 and OpenBSD 4.5 at least). + + * hash.c (ruby_setenv): don't use the result of unsetenv if unsetenv + doesn't return a value. + Tue Jan 26 21:32:03 2010 Tanaka Akira <akr@f...> * ext/socket/extconf.rb: suppress a warning. Index: hash.c =================================================================== --- hash.c (revision 26426) +++ hash.c (revision 26427) @@ -2073,8 +2073,12 @@ if (setenv(name, value, 1)) rb_sys_fail("setenv"); } else { +#ifdef VOID_UNSETENV + unsetenv(name); +#else if (unsetenv(name)) rb_sys_fail("unsetenv"); +#endif } #elif defined __sun__ size_t len; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/