- Added a setenv replacement for systems which lack it

This commit is contained in:
Damien Miller committed 1999-11-22 16:11:05 +11:00
1 parent d71b12ee5b
commit d770252d3a
4 files changed
+27 -1

No files matched your search

+1
View File
@@ -13,6 +13,7 @@
- Fix EGD problems (Thanks to Ben Taylor <[email protected]>)
- Retry /dev/urandom reads interrupted by signal (report from
Robert Hardy <[email protected]>)
- Added a setenv replacement for systems which lack it
19991121
- OpenBSD CVS Changes:
+1 -1
View File
@@ -58,7 +58,7 @@ dnl Checks for header files.
AC_CHECK_HEADERS(pty.h endian.h paths.h lastlog.h shadow.h netgroup.h maillock.h sys/select.h sys/time.h)
dnl Checks for library functions.
AC_CHECK_FUNCS(openpty strlcpy strlcat mkdtemp arc4random setproctitle setlogin)
AC_CHECK_FUNCS(openpty strlcpy strlcat mkdtemp arc4random setproctitle setlogin setenv)
AC_CHECK_FUNC(login,
[AC_DEFINE(HAVE_LOGIN)],
+21
View File
@@ -149,3 +149,24 @@ void setproctitle(const char *fmt, ...)
/* FIXME */
}
#endif /* !HAVE_SETPROCTITLE */
#ifndef HAVE_SETENV
int setenv(const char *name, const char *value, int overwrite)
{
char *env_string;
int result;
/* Don't overwrite existing env. var if overwrite is 0 */
if (!overwrite && (getenv(name) != NULL))
return(0);
env_string = xmalloc(strlen(name) + strlen(value) + 2);
sprintf(env_string, "%s=%s", name, value);
result = putenv(env_string);
xfree(env_string);
return(result);
}
#endif /* !HAVE_SETENV */
+4
View File
@@ -47,4 +47,8 @@ void arc4random_stir(void);
void setproctitle(const char *fmt, ...);
#endif /* !HAVE_SETPROCTITLE */
#ifndef HAVE_SETENV
int setenv(const char *name, const char *value, int overwrite);
#endif /* !HAVE_SETENV */
#endif /* _HELPER_H */