diff options
Diffstat (limited to '7zip/Archive/Rar/RarHandler.cpp')
-rwxr-xr-x | 7zip/Archive/Rar/RarHandler.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/7zip/Archive/Rar/RarHandler.cpp b/7zip/Archive/Rar/RarHandler.cpp index 56187156..cd654ec2 100755 --- a/7zip/Archive/Rar/RarHandler.cpp +++ b/7zip/Archive/Rar/RarHandler.cpp @@ -23,6 +23,7 @@ #include "../Common/CoderLoader.h" #include "../Common/CodecsPath.h" #include "../Common/FilterCoder.h" +#include "../Common/ItemNameUtils.h" #include "../7z/7zMethods.h" @@ -186,11 +187,15 @@ STDMETHODIMP CHandler::GetProperty(UInt32 index, PROPID propID, PROPVARIANT *va switch(propID) { case kpidPath: + { + UString u; if (item.HasUnicodeName() && !item.UnicodeName.IsEmpty()) - propVariant = item.UnicodeName; + u = item.UnicodeName; else - propVariant = (const wchar_t *)MultiByteToUnicodeString(item.Name, CP_OEMCP); + u = MultiByteToUnicodeString(item.Name, CP_OEMCP); + propVariant = (const wchar_t *)NItemName::WinNameToOSName(u); break; + } case kpidIsFolder: propVariant = item.IsDirectory(); break; |