diff options
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg-test/files.cpp | 4 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg-test/util.cpp | 26 |
2 files changed, 14 insertions, 16 deletions
diff --git a/toolsrc/src/vcpkg-test/files.cpp b/toolsrc/src/vcpkg-test/files.cpp index d8bc5ba74..cbe1e81c3 100644 --- a/toolsrc/src/vcpkg-test/files.cpp +++ b/toolsrc/src/vcpkg-test/files.cpp @@ -65,8 +65,6 @@ namespace Width width = Width{5}, CurrentDepth current_depth = CurrentDepth{0}) { - std::random_device rd; - // we want ~70% of our "files" to be directories, and then a third // each of the remaining ~30% to be regular files, directory symlinks, // and regular symlinks @@ -132,7 +130,7 @@ namespace CHECK_EC_ON_FILE(base_link, ec); vcpkg::Test::create_symlink(base_link, base, ec); } - else // type == directory_symlink_tag + else // file_type == directory_symlink_tag { // directory symlink auto parent = base; diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index d754baec1..c615f6bb2 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -114,21 +114,21 @@ namespace vcpkg::Test #elif !defined(_WIN32) // FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_STD return AllowSymlinks::Yes; #else - HKEY key; - bool allow_symlinks = true; - - const auto status = RegOpenKeyExW( - HKEY_LOCAL_MACHINE, LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock)", 0, 0, &key); - - if (status == ERROR_FILE_NOT_FOUND) - { - allow_symlinks = false; + constexpr static const wchar_t regkey[] = + LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock)"; + constexpr static const wchar_t regkey_member[] = LR"(AllowDevelopmentWithoutDevLicense)"; + + DWORD data; + DWORD dataSize = sizeof(data); + const auto status = RegGetValueW( + HKEY_LOCAL_MACHINE, regkey, regkey_member, RRF_RT_DWORD, nullptr, &data, &dataSize); + + if (status == ERROR_SUCCESS && data == 1) { + return AllowSymlinks::Yes; + } else { std::clog << "Symlinks are not allowed on this system\n"; + return AllowSymlinks::No; } - - if (status == ERROR_SUCCESS) RegCloseKey(key); - - return allow_symlinks ? AllowSymlinks::Yes : AllowSymlinks::No; #endif } const static AllowSymlinks CAN_CREATE_SYMLINKS = internal_can_create_symlinks(); |
