cmSystemTools: Fix unsetenv() fallback

The fallback path boils down to putenv(). Calling that with a "=" sets the
variable to an empty string.
Use cmSystemTools::UnPutEnv() instead, which correctly handles unsetting
variables on a variety of systems.
This commit is contained in:
Raul Tambre
2022-06-24 21:21:17 +03:00
parent 324ca5b489
commit 8eb8d16c19

View File

@@ -1501,8 +1501,7 @@ std::string cmSystemTools::RelativeIfUnder(std::string const& top,
bool cmSystemTools::UnsetEnv(const char* value)
{
# if !defined(HAVE_UNSETENV)
std::string var = cmStrCat(value, '=');
return cmSystemTools::PutEnv(var);
return cmSystemTools::UnPutEnv(value);
# else
unsetenv(value);
return true;