+2004-11-02 Bruno Haible <bruno@clisp.org>
+
+ * setenv.h (unsetenv): Define as a macro if the system's unsetenv()
+ function returns void.
+
2004-11-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/getpass.c (fflush_unlocked, flockfile, funlockfile)
/* Setting environment variables.
- Copyright (C) 2001-2003 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#endif
-#if !HAVE_UNSETENV
+#if HAVE_UNSETENV
+
+# if VOID_UNSETENV
+/* On some systems, unsetenv() returns void.
+ This is the case for FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */
+# define unsetenv(name) ((unsetenv)(name), 0)
+# endif
+
+#else
/* Remove the variable NAME from the environment. */
extern int unsetenv (const char *name);
+2004-11-02 Bruno Haible <bruno@clisp.org>
+
+ * setenv.m4 (gt_FUNC_SETENV): Define VOID_UNSETENV if unsetenv()
+ returns void.
+
2004-11-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/getpass.m4 (gl_PREREQ_GETPASS): Check for declarations of
-# setenv.m4 serial 4
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+# setenv.m4 serial 5
+dnl Copyright (C) 2001-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
fi
if test $ac_cv_func_unsetenv = no; then
gl_PREREQ_UNSETENV
+ else
+ AC_CACHE_CHECK([for unsetenv() return type], gt_cv_func_unsetenv_ret,
+ [AC_TRY_COMPILE([#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+int unsetenv (const char *name);
+#else
+int unsetenv();
+#endif
+], , 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 if unsetenv() returns void, not int.])
+ fi
fi
])