diff options
| author | Shawn Hoffman <godisgovernment@gmail.com> | 2017-06-25 16:46:59 -0700 |
|---|---|---|
| committer | Shawn Hoffman <godisgovernment@gmail.com> | 2017-06-25 16:47:46 -0700 |
| commit | 1634f0cf5ec3a1a538c760d08b417ddb0d7a0a94 (patch) | |
| tree | ef4f2f18ce60524e352db020007a91533eab9015 /Source/Core/Common/FileSearch.cpp | |
| parent | 88b442e1a85e1c477072a7e9302eafcbd866fbb8 (diff) | |
Use CompareStringOrdinal in DoFileSearch instead of _wcsicmp
Diffstat (limited to 'Source/Core/Common/FileSearch.cpp')
| -rw-r--r-- | Source/Core/Common/FileSearch.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Source/Core/Common/FileSearch.cpp b/Source/Core/Common/FileSearch.cpp index 53eca6fcca..3f810132f5 100644 --- a/Source/Core/Common/FileSearch.cpp +++ b/Source/Core/Common/FileSearch.cpp @@ -9,6 +9,7 @@ #include "Common/FileSearch.h" #ifdef _MSC_VER +#include <Windows.h> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; #define HAS_STD_FILESYSTEM @@ -85,9 +86,10 @@ std::vector<std::string> DoFileSearch(const std::vector<std::string>& directorie return std::any_of(native_exts.cbegin(), native_exts.cend(), [&native_path](const auto& ext) { // TODO provide cross-platform compat for the comparison function, once more platforms // support std::filesystem - return native_path.length() >= ext.native().length() && - _wcsicmp(&native_path.c_str()[native_path.length() - ext.native().length()], - ext.c_str()) == 0; + int compare_len = static_cast<int>(ext.native().length()); + return native_path.length() >= compare_len && + CompareStringOrdinal(&native_path.c_str()[native_path.length() - compare_len], + compare_len, ext.c_str(), compare_len, TRUE) == CSTR_EQUAL; }); }; @@ -102,12 +104,12 @@ std::vector<std::string> DoFileSearch(const std::vector<std::string>& directorie if (recursive) { // TODO use fs::directory_options::follow_directory_symlink ? - for (auto& entry : fs::recursive_directory_iterator(fs::path(directory.c_str()))) + for (auto& entry : fs::recursive_directory_iterator(fs::path(directory))) add_filtered(entry); } else { - for (auto& entry : fs::directory_iterator(fs::path(directory.c_str()))) + for (auto& entry : fs::directory_iterator(fs::path(directory))) add_filtered(entry); } } |
