Просмотр исходного кода

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 лет назад
Родитель
Сommit
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)
 bool cmSystemTools::UnsetEnv(const char* value)
 {
 {
 #  if !defined(HAVE_UNSETENV)
 #  if !defined(HAVE_UNSETENV)
-  std::string var = cmStrCat(value, '=');
-  return cmSystemTools::PutEnv(var);
+  return cmSystemTools::UnPutEnv(value);
 #  else
 #  else
   unsetenv(value);
   unsetenv(value);
   return true;
   return true;