aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_System.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-02-14 15:35:34 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-02-14 15:35:34 -0800
commitb882f365e9aebf95c07c8667e38ae2730931f74e (patch)
tree16f9b6e78024aa277cfb7470a5ad3f6eae002d9b /toolsrc/src/vcpkg_System.cpp
parenta5181331653592afcd6223140722ecbcfa58c94d (diff)
downloadvcpkg-b882f365e9aebf95c07c8667e38ae2730931f74e.tar.gz
vcpkg-b882f365e9aebf95c07c8667e38ae2730931f74e.zip
System::get_environmental_variable() now returns optional<>
Diffstat (limited to 'toolsrc/src/vcpkg_System.cpp')
-rw-r--r--toolsrc/src/vcpkg_System.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/toolsrc/src/vcpkg_System.cpp b/toolsrc/src/vcpkg_System.cpp
index e7349df69..3b056a675 100644
--- a/toolsrc/src/vcpkg_System.cpp
+++ b/toolsrc/src/vcpkg_System.cpp
@@ -73,17 +73,20 @@ namespace vcpkg::System
std::cout << "\n";
}
- std::wstring get_environmental_variable(const wchar_t* varname) noexcept
+ optional<std::wstring> get_environmental_variable(const wchar_t* varname) noexcept
{
std::wstring ret;
wchar_t* buffer;
_wdupenv_s(&buffer, nullptr, varname);
- if (buffer != nullptr)
+
+ if (buffer == nullptr)
{
- ret = buffer;
- free(buffer);
+ return nullptr;
}
- return ret;
+
+ ret = buffer;
+ free(buffer);
+ return std::make_unique<std::wstring>(ret);
}
void set_environmental_variable(const wchar_t* varname, const wchar_t* varvalue) noexcept