浏览代码

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.
Raul Tambre 3 年之前
父节点
当前提交
8eb8d16c19
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      Source/cmSystemTools.cxx

+ 1 - 2
Source/cmSystemTools.cxx

@@ -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;