From 544a2d30e01b5f4f9849c9aa631e0525062c2707 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 12 Mar 2007 09:59:06 +0000 Subject: r21793: add replacement for unsetenv() metze (This used to be commit d6de7f2cda70cfd55f0f7fbb9f3b93a5a58c6f51) --- source4/lib/replace/replace.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'source4/lib/replace/replace.c') diff --git a/source4/lib/replace/replace.c b/source4/lib/replace/replace.c index 9e6c75bd35..486c1c5e13 100644 --- a/source4/lib/replace/replace.c +++ b/source4/lib/replace/replace.c @@ -590,6 +590,40 @@ int rep_setenv(const char *name, const char *value, int overwrite) } #endif +#ifndef HAVE_UNSETENV +int rep_unsetenv(const char *name) +{ + char *p; + size_t l1; + int ret; + + if (!getenv(name)) { + return 0; + } + + l1 = strlen(name); + + p = malloc(l1+1); + if (p == NULL) { + return -1; + } + memcpy(p, name, l1); + p[l1] = 0; + + /* + * use using "name" here unsets the var + * + * "name=" would set it to an empty string.. + */ + ret = putenv(p); + if (ret != 0) { + free(p); + } + + return ret; +} +#endif + #ifndef HAVE_SOCKETPAIR int rep_socketpair(int d, int type, int protocol, int sv[2]) { -- cgit