From d9285b2cbf6d33b2ec254ec7ce7f47ac4b924fe6 Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 16 Aug 2002 09:36:46 +0000 Subject: [PATCH] Unicode to MBCS conversion bugs fixed git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@689 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/DialogTemplate.cpp | 8 ++++---- Source/ResourceEditor.cpp | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Source/DialogTemplate.cpp b/Source/DialogTemplate.cpp index 4a515372..f05f532c 100644 --- a/Source/DialogTemplate.cpp +++ b/Source/DialogTemplate.cpp @@ -49,10 +49,10 @@ void ReadVarLenArr(BYTE* &seeker, char* &readInto) { break; default: { - DWORD dwStrLen = WCStrLen((WCHAR*)arr); - readInto = new char[dwStrLen]; - WideCharToMultiByte(CP_ACP, 0, (WCHAR*)arr, dwStrLen, readInto, dwStrLen, 0, 0); - seeker += (dwStrLen)*sizeof(WCHAR); + int iStrLen = WideCharToMultiByte(CP_ACP, 0, (WCHAR*)arr, -1, 0, 0, 0, 0); + readInto = new char[iStrLen]; + WideCharToMultiByte(CP_ACP, 0, (WCHAR*)arr, -1, readInto, iStrLen, 0, 0); + seeker += WCStrLen((WCHAR*)arr)*sizeof(WCHAR); } break; } diff --git a/Source/ResourceEditor.cpp b/Source/ResourceEditor.cpp index 63eef7d7..05930bb0 100644 --- a/Source/ResourceEditor.cpp +++ b/Source/ResourceEditor.cpp @@ -340,9 +340,10 @@ CResourceDirectory* CResourceEditor::ScanDirectory(PRESOURCE_DIRECTORY rdRoot, P if (rdToScan->Entries[i].NameIsString) { PIMAGE_RESOURCE_DIR_STRING_U rds = PIMAGE_RESOURCE_DIR_STRING_U(rdToScan->Entries[i].NameOffset + (char*)rdRoot); - szName = new char[rds->Length+1]; - WideCharToMultiByte(CP_ACP, 0, rds->NameString, rds->Length, szName, rds->Length, 0, 0); - szName[rds->Length] = 0; + int mbsSize = WideCharToMultiByte(CP_ACP, 0, rds->NameString, rds->Length, 0, 0, 0, 0); + szName = new char[mbsSize+1]; + WideCharToMultiByte(CP_ACP, 0, rds->NameString, rds->Length, szName, mbsSize, 0, 0); + szName[mbsSize] = 0; } // Else, set the name to this entry's id else