diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2013-03-03 19:56:36 -0600 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2013-03-03 19:56:36 -0600 |
| commit | fcf87f6c53fd26b4dcbba5151185f3c4f4d4bd1d (patch) | |
| tree | 08fd3277db552867f251bed449400f68387ac6f6 /Source/Core/Common/Src/CDUtils.cpp | |
| parent | cedfa452b4497590f828306b42b1e7c24915fd58 (diff) | |
| parent | 814c2ffdfd213dfa78078471d298e2657b7e14e9 (diff) | |
Merge branch 'windows-unicode'
Fixed unicode filename handling on Windows.
Made all significant projects build with "Unicode" option on Windows.
Fixed unicode string handling in GUI code on all OSes.
From now on: std::string == UTF-8.
Fixed issue 4111.
Fixed issue 5178.
Fixed issue 5980.
Diffstat (limited to 'Source/Core/Common/Src/CDUtils.cpp')
| -rw-r--r-- | Source/Core/Common/Src/CDUtils.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Source/Core/Common/Src/CDUtils.cpp b/Source/Core/Common/Src/CDUtils.cpp index 42aa9bfe34..9a302b9189 100644 --- a/Source/Core/Common/Src/CDUtils.cpp +++ b/Source/Core/Common/Src/CDUtils.cpp @@ -6,6 +6,7 @@ #include <memory> // for std::unique_ptr #ifdef _WIN32 #include <windows.h> +#include "StringUtil.h" #elif __APPLE__ #include <CoreFoundation/CoreFoundation.h> #include <IOKit/IOBSD.h> @@ -25,7 +26,7 @@ #ifdef _WIN32 // takes a root drive path, returns true if it is a cdrom drive -bool is_cdrom(const char drive[]) +bool is_cdrom(const TCHAR* drive) { return (DRIVE_CDROM == GetDriveType(drive)); } @@ -36,15 +37,15 @@ std::vector<std::string> cdio_get_devices() std::vector<std::string> drives; const DWORD buffsize = GetLogicalDriveStrings(0, NULL); - std::unique_ptr<char[]> buff(new char[buffsize]); - if (GetLogicalDriveStrings(buffsize, buff.get()) == buffsize - 1) + std::vector<TCHAR> buff(buffsize); + if (GetLogicalDriveStrings(buffsize, buff.data()) == buffsize - 1) { - const char* drive = buff.get(); + auto drive = buff.data(); while (*drive) { if (is_cdrom(drive)) { - std::string str(drive); + std::string str(TStrToUTF8(drive)); str.pop_back(); // we don't want the final backslash drives.push_back(std::move(str)); } |
