From e041a0a32c721a78e939b93aa1cdddd08bf2c389 Mon Sep 17 00:00:00 2001 From: wizou Date: Mon, 17 May 2010 15:46:21 +0000 Subject: [PATCH] Unicode port: Turn RichEdit20A controls into RichEdit20W automatically git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6090 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/DialogTemplate.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/DialogTemplate.cpp b/Source/DialogTemplate.cpp index 7e053856..2bbe0a3f 100644 --- a/Source/DialogTemplate.cpp +++ b/Source/DialogTemplate.cpp @@ -468,7 +468,7 @@ void CDialogTemplate::ConvertToRTL() { m_vItems[i]->dwStyle |= SS_CENTERIMAGE; } } - else if (!IS_INTRESOURCE(m_vItems[i]->szClass) && !_wcsicmp(m_vItems[i]->szClass, L"RichEdit20A")) { + else if (!IS_INTRESOURCE(m_vItems[i]->szClass) && !_wcsnicmp(m_vItems[i]->szClass, L"RichEdit20", 10)) { if ((m_vItems[i]->dwStyle & ES_CENTER) == 0) { m_vItems[i]->dwStyle ^= ES_RIGHT; } @@ -596,7 +596,12 @@ BYTE* CDialogTemplate::Save(DWORD& dwSize) { } // Write class variant length array - WriteStringOrId(m_vItems[i]->szClass); + WCHAR *szClass = m_vItems[i]->szClass; +#ifdef _UNICODE + if (!IS_INTRESOURCE(szClass) && !_wcsicmp(szClass, L"RichEdit20A")) + szClass = L"RichEdit20W"; // transmute ANSI RichEdit control into Unicode RichEdit +#endif + WriteStringOrId(szClass); // Write title variant length array WriteStringOrId(m_vItems[i]->szTitle);