X-Git-Url: https://git.cworth.org/git?p=tar;a=blobdiff_plain;f=m4%2Fsetenv.m4;fp=m4%2Fsetenv.m4;h=de7171ee5226dc8d2557bc487a863926f3f2c99f;hp=ae4dd863fc4574401dd4e22b5c3c9a585fd37dbb;hb=b414e25de8ca49d7567a92c203d431383ec57c83;hpb=29ece34f44a27750bbfd76154ad9882580453dc7 diff --git a/m4/setenv.m4 b/m4/setenv.m4 index ae4dd86..de7171e 100644 --- a/m4/setenv.m4 +++ b/m4/setenv.m4 @@ -1,4 +1,4 @@ -# setenv.m4 serial 15 +# 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, @@ -25,6 +25,7 @@ AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include + #include ]], [[ if (setenv ("", "", 0) != -1) return 1; if (errno != EINVAL) return 2; @@ -52,7 +53,10 @@ AC_DEFUN([gl_FUNC_UNSETENV], else dnl Some BSDs return void, failing to do error checking. AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], - [AC_TRY_COMPILE([#include + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include extern #ifdef __cplusplus "C" @@ -62,7 +66,10 @@ int unsetenv (const char *name); #else int unsetenv(); #endif -], , gt_cv_func_unsetenv_ret='int', gt_cv_func_unsetenv_ret='void')]) + ]], + [[]])], + [gt_cv_func_unsetenv_ret='int'], + [gt_cv_func_unsetenv_ret='void'])]) if test $gt_cv_func_unsetenv_ret = 'void'; then AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void instead of int.]) @@ -71,10 +78,12 @@ int unsetenv(); 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 + #include ]], [[ char entry[] = "b=2"; if (putenv ((char *) "a=1")) return 1; @@ -82,6 +91,7 @@ int unsetenv(); 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"])])