Remove ambiguous symbols (part 9)

Relace TCHAR, generic_string & TEXT("") par wchar_t, wstring & L"" respectively.
Follow up: 94af271

Close #15386
pull/15388/head
Don Ho 2024-07-01 19:55:59 +02:00
parent dc5cea8947
commit a301ffc774
14 changed files with 282 additions and 290 deletions

View File

@ -20,6 +20,7 @@
#include "FileInterface.h" #include "FileInterface.h"
#include "Parameters.h" #include "Parameters.h"
using namespace std;
Win32_IO_File::Win32_IO_File(const wchar_t *fname) Win32_IO_File::Win32_IO_File(const wchar_t *fname)
{ {
@ -68,9 +69,9 @@ Win32_IO_File::Win32_IO_File(const wchar_t *fname)
NppParameters& nppParam = NppParameters::getInstance(); NppParameters& nppParam = NppParameters::getInstance();
if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue()) if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue())
{ {
generic_string issueFn = nppLogNulContentCorruptionIssue; wstring issueFn = nppLogNulContentCorruptionIssue;
issueFn += TEXT(".log"); issueFn += L".log";
generic_string nppIssueLog = nppParam.getUserPath(); wstring nppIssueLog = nppParam.getUserPath();
pathAppend(nppIssueLog, issueFn); pathAppend(nppIssueLog, issueFn);
std::string msg = _path; std::string msg = _path;
@ -157,9 +158,9 @@ Please try using another storage and also check if your saved data is not corrup
if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue()) if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue())
{ {
generic_string issueFn = nppLogNulContentCorruptionIssue; wstring issueFn = nppLogNulContentCorruptionIssue;
issueFn += TEXT(".log"); issueFn += L".log";
generic_string nppIssueLog = nppParam.getUserPath(); wstring nppIssueLog = nppParam.getUserPath();
pathAppend(nppIssueLog, issueFn); pathAppend(nppIssueLog, issueFn);
std::string msg; std::string msg;
@ -219,9 +220,9 @@ bool Win32_IO_File::write(const void *wbuf, size_t buf_size)
{ {
if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue()) if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue())
{ {
generic_string issueFn = nppLogNulContentCorruptionIssue; wstring issueFn = nppLogNulContentCorruptionIssue;
issueFn += TEXT(".log"); issueFn += L".log";
generic_string nppIssueLog = nppParam.getUserPath(); wstring nppIssueLog = nppParam.getUserPath();
pathAppend(nppIssueLog, issueFn); pathAppend(nppIssueLog, issueFn);
std::string msg = _path; std::string msg = _path;
@ -238,9 +239,9 @@ bool Win32_IO_File::write(const void *wbuf, size_t buf_size)
{ {
if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue()) if (nppParam.isEndSessionStarted() && nppParam.doNppLogNulContentCorruptionIssue())
{ {
generic_string issueFn = nppLogNulContentCorruptionIssue; wstring issueFn = nppLogNulContentCorruptionIssue;
issueFn += TEXT(".log"); issueFn += L".log";
generic_string nppIssueLog = nppParam.getUserPath(); wstring nppIssueLog = nppParam.getUserPath();
pathAppend(nppIssueLog, issueFn); pathAppend(nppIssueLog, issueFn);
std::string msg = _path; std::string msg = _path;

View File

@ -141,11 +141,11 @@ void CSHA1::Update(const UINT_8* pbData, UINT_32 uLen)
} }
#ifdef SHA1_UTILITY_FUNCTIONS #ifdef SHA1_UTILITY_FUNCTIONS
bool CSHA1::HashFile(const TCHAR* tszFileName) bool CSHA1::HashFile(const wchar_t* tszFileName)
{ {
if(tszFileName == NULL) return false; if(tszFileName == NULL) return false;
FILE* fpIn = _tfopen(tszFileName, _T("rb")); FILE* fpIn = _tfopen(tszFileName, L"rb");
if(fpIn == NULL) return false; if(fpIn == NULL) return false;
UINT_8* pbData = new UINT_8[SHA1_MAX_FILE_BUFFER]; UINT_8* pbData = new UINT_8[SHA1_MAX_FILE_BUFFER];
@ -203,18 +203,18 @@ void CSHA1::Final()
} }
#ifdef SHA1_UTILITY_FUNCTIONS #ifdef SHA1_UTILITY_FUNCTIONS
bool CSHA1::ReportHash(TCHAR* tszReport, REPORT_TYPE rtReportType) const bool CSHA1::ReportHash(wchar_t* tszReport, REPORT_TYPE rtReportType) const
{ {
if(tszReport == NULL) return false; if(tszReport == NULL) return false;
TCHAR tszTemp[16]{}; wchar_t tszTemp[16]{};
if((rtReportType == REPORT_HEX) || (rtReportType == REPORT_HEX_SHORT)) if((rtReportType == REPORT_HEX) || (rtReportType == REPORT_HEX_SHORT))
{ {
_sntprintf(tszTemp, 15, _T("%02X"), m_digest[0]); _sntprintf(tszTemp, 15, L"%02X", m_digest[0]);
_tcscpy(tszReport, tszTemp); _tcscpy(tszReport, tszTemp);
const TCHAR* lpFmt = ((rtReportType == REPORT_HEX) ? _T(" %02X") : _T("%02X")); const wchar_t* lpFmt = ((rtReportType == REPORT_HEX) ? L" %02X" : L"%02X");
for(size_t i = 1; i < 20; ++i) for(size_t i = 1; i < 20; ++i)
{ {
_sntprintf(tszTemp, 15, lpFmt, m_digest[i]); _sntprintf(tszTemp, 15, lpFmt, m_digest[i]);
@ -223,12 +223,12 @@ bool CSHA1::ReportHash(TCHAR* tszReport, REPORT_TYPE rtReportType) const
} }
else if(rtReportType == REPORT_DIGIT) else if(rtReportType == REPORT_DIGIT)
{ {
_sntprintf(tszTemp, 15, _T("%u"), m_digest[0]); _sntprintf(tszTemp, 15, L"%u", m_digest[0]);
_tcscpy(tszReport, tszTemp); _tcscpy(tszReport, tszTemp);
for(size_t i = 1; i < 20; ++i) for(size_t i = 1; i < 20; ++i)
{ {
_sntprintf(tszTemp, 15, _T(" %u"), m_digest[i]); _sntprintf(tszTemp, 15, L" %u", m_digest[i]);
_tcscat(tszReport, tszTemp); _tcscat(tszReport, tszTemp);
} }
} }
@ -239,9 +239,9 @@ bool CSHA1::ReportHash(TCHAR* tszReport, REPORT_TYPE rtReportType) const
#endif #endif
#ifdef SHA1_STL_FUNCTIONS #ifdef SHA1_STL_FUNCTIONS
bool CSHA1::ReportHashStl(std::basic_string<TCHAR>& strOut, REPORT_TYPE rtReportType) const bool CSHA1::ReportHashStl(std::basic_string<wchar_t>& strOut, REPORT_TYPE rtReportType) const
{ {
TCHAR tszOut[84]{}; wchar_t tszOut[84]{};
const bool bResult = ReportHash(tszOut, rtReportType); const bool bResult = ReportHash(tszOut, rtReportType);
if(bResult) strOut = tszOut; if(bResult) strOut = tszOut;
return bResult; return bResult;

View File

@ -153,20 +153,6 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#include <tchar.h> #include <tchar.h>
#else #else
#ifndef TCHAR
#define TCHAR char
#endif
#ifndef _T
#define _T(__x) (__x)
#define _tmain main
#define _tprintf printf
#define _getts gets
#define _tcslen strlen
#define _tfopen fopen
#define _tcscpy strcpy
#define _tcscat strcat
#define _sntprintf snprintf
#endif
#endif #endif
#endif #endif
@ -245,18 +231,18 @@ public:
#ifdef SHA1_UTILITY_FUNCTIONS #ifdef SHA1_UTILITY_FUNCTIONS
// Hash in file contents // Hash in file contents
bool HashFile(const TCHAR* tszFileName); bool HashFile(const wchar_t* tszFileName);
#endif #endif
// Finalize hash; call it before using ReportHash(Stl) // Finalize hash; call it before using ReportHash(Stl)
void Final(); void Final();
#ifdef SHA1_UTILITY_FUNCTIONS #ifdef SHA1_UTILITY_FUNCTIONS
bool ReportHash(TCHAR* tszReport, REPORT_TYPE rtReportType = REPORT_HEX) const; bool ReportHash(wchar_t* tszReport, REPORT_TYPE rtReportType = REPORT_HEX) const;
#endif #endif
#ifdef SHA1_STL_FUNCTIONS #ifdef SHA1_STL_FUNCTIONS
bool ReportHashStl(std::basic_string<TCHAR>& strOut, REPORT_TYPE rtReportType = bool ReportHashStl(std::basic_string<wchar_t>& strOut, REPORT_TYPE rtReportType =
REPORT_HEX) const; REPORT_HEX) const;
#endif #endif

View File

@ -463,7 +463,7 @@ void FindReplaceDlg::fillComboHistory(int id, const vector<wstring> & strings)
//empty string is not added to CB items, so we need to set it manually //empty string is not added to CB items, so we need to set it manually
if (!strings.empty() && strings.begin()->empty()) if (!strings.empty() && strings.begin()->empty())
{ {
SetWindowText(hCombo, _T("")); SetWindowText(hCombo, L"");
return; return;
} }

View File

@ -17,9 +17,10 @@
#include "Printer.h" #include "Printer.h"
#include "RunDlg.h" #include "RunDlg.h"
//#include "Parameters.h"
void replaceStr(generic_string & str, generic_string str2BeReplaced, generic_string replacement) using namespace std;
void replaceStr(wstring & str, wstring str2BeReplaced, wstring replacement)
{ {
size_t pos = str.find(str2BeReplaced); size_t pos = str.find(str2BeReplaced);
@ -131,7 +132,7 @@ size_t Printer::doPrint(bool justDoIt)
int fontSize = nppGUI._printSettings._headerFontSize?nppGUI._printSettings._headerFontSize:9; int fontSize = nppGUI._printSettings._headerFontSize?nppGUI._printSettings._headerFontSize:9;
int fontWeight = (nppGUI._printSettings._headerFontStyle & FONTSTYLE_BOLD) ? FW_BOLD : FW_NORMAL; int fontWeight = (nppGUI._printSettings._headerFontStyle & FONTSTYLE_BOLD) ? FW_BOLD : FW_NORMAL;
int isFontItalic = (nppGUI._printSettings._headerFontStyle & FONTSTYLE_ITALIC) ? TRUE : FALSE; int isFontItalic = (nppGUI._printSettings._headerFontStyle & FONTSTYLE_ITALIC) ? TRUE : FALSE;
const TCHAR *fontFace = (nppGUI._printSettings._headerFontName != TEXT(""))?nppGUI._printSettings._headerFontName.c_str():TEXT("Arial"); const wchar_t *fontFace = (nppGUI._printSettings._headerFontName != L"")?nppGUI._printSettings._headerFontName.c_str():L"Arial";
int headerLineHeight = ::MulDiv(fontSize, ptDpi.y, 72); int headerLineHeight = ::MulDiv(fontSize, ptDpi.y, 72);
@ -151,7 +152,7 @@ size_t Printer::doPrint(bool justDoIt)
fontSize = nppGUI._printSettings._footerFontSize?nppGUI._printSettings._footerFontSize:9; fontSize = nppGUI._printSettings._footerFontSize?nppGUI._printSettings._footerFontSize:9;
fontWeight = (nppGUI._printSettings._footerFontStyle & FONTSTYLE_BOLD) ? FW_BOLD : FW_NORMAL; fontWeight = (nppGUI._printSettings._footerFontStyle & FONTSTYLE_BOLD) ? FW_BOLD : FW_NORMAL;
isFontItalic = (nppGUI._printSettings._footerFontStyle & FONTSTYLE_ITALIC) ? TRUE : FALSE; isFontItalic = (nppGUI._printSettings._footerFontStyle & FONTSTYLE_ITALIC) ? TRUE : FALSE;
fontFace = (nppGUI._printSettings._footerFontName != TEXT(""))?nppGUI._printSettings._footerFontName.c_str():TEXT("Arial"); fontFace = (nppGUI._printSettings._footerFontName != L"")?nppGUI._printSettings._footerFontName.c_str():L"Arial";
int footerLineHeight = ::MulDiv(fontSize, ptDpi.y, 72); int footerLineHeight = ::MulDiv(fontSize, ptDpi.y, 72);
HFONT fontFooter = ::CreateFont(footerLineHeight, HFONT fontFooter = ::CreateFont(footerLineHeight,
@ -181,7 +182,7 @@ size_t Printer::doPrint(bool justDoIt)
if (::StartDoc(_pdlg.hDC, &docInfo) < 0) if (::StartDoc(_pdlg.hDC, &docInfo) < 0)
{ {
MessageBox(NULL, TEXT("Can not start printer document."), 0, MB_OK); MessageBox(NULL, L"Can not start printer document.", 0, MB_OK);
return 0; return 0;
} }
@ -227,22 +228,22 @@ size_t Printer::doPrint(bool justDoIt)
frPrint.rc.right -= printMarge; frPrint.rc.right -= printMarge;
const int headerSize = 256; const int headerSize = 256;
TCHAR headerL[headerSize] = TEXT(""); wchar_t headerL[headerSize] = L"";
TCHAR headerM[headerSize] = TEXT(""); wchar_t headerM[headerSize] = L"";
TCHAR headerR[headerSize] = TEXT(""); wchar_t headerR[headerSize] = L"";
TCHAR footerL[headerSize] = TEXT(""); wchar_t footerL[headerSize] = L"";
TCHAR footerM[headerSize] = TEXT(""); wchar_t footerM[headerSize] = L"";
TCHAR footerR[headerSize] = TEXT(""); wchar_t footerR[headerSize] = L"";
const TCHAR shortDateVar[] = TEXT("$(SHORT_DATE)"); const wchar_t shortDateVar[] = L"$(SHORT_DATE)";
const TCHAR longDateVar[] = TEXT("$(LONG_DATE)"); const wchar_t longDateVar[] = L"$(LONG_DATE)";
const TCHAR timeVar[] = TEXT("$(TIME)"); const wchar_t timeVar[] = L"$(TIME)";
const int bufferSize = 64; const int bufferSize = 64;
TCHAR shortDate[bufferSize]; wchar_t shortDate[bufferSize];
TCHAR longDate[bufferSize]; wchar_t longDate[bufferSize];
TCHAR time[bufferSize]; wchar_t time[bufferSize];
SYSTEMTIME st{}; SYSTEMTIME st{};
::GetLocalTime(&st); ::GetLocalTime(&st);
@ -254,8 +255,8 @@ size_t Printer::doPrint(bool justDoIt)
{ {
frPrint.rc.top += headerLineHeight + headerLineHeight / 2; frPrint.rc.top += headerLineHeight + headerLineHeight / 2;
generic_string headerLeftPart = nppGUI._printSettings._headerLeft; wstring headerLeftPart = nppGUI._printSettings._headerLeft;
if (headerLeftPart != TEXT("")) if (headerLeftPart != L"")
{ {
replaceStr(headerLeftPart, shortDateVar, shortDate); replaceStr(headerLeftPart, shortDateVar, shortDate);
replaceStr(headerLeftPart, longDateVar, longDate); replaceStr(headerLeftPart, longDateVar, longDate);
@ -263,8 +264,8 @@ size_t Printer::doPrint(bool justDoIt)
expandNppEnvironmentStrs(headerLeftPart.c_str(), headerL, headerSize, _pdlg.hwndOwner); expandNppEnvironmentStrs(headerLeftPart.c_str(), headerL, headerSize, _pdlg.hwndOwner);
} }
generic_string headerMiddlePart = nppGUI._printSettings._headerMiddle; wstring headerMiddlePart = nppGUI._printSettings._headerMiddle;
if (headerMiddlePart != TEXT("")) if (headerMiddlePart != L"")
{ {
replaceStr(headerMiddlePart, shortDateVar, shortDate); replaceStr(headerMiddlePart, shortDateVar, shortDate);
replaceStr(headerMiddlePart, longDateVar, longDate); replaceStr(headerMiddlePart, longDateVar, longDate);
@ -272,8 +273,8 @@ size_t Printer::doPrint(bool justDoIt)
expandNppEnvironmentStrs(headerMiddlePart.c_str(), headerM, headerSize, _pdlg.hwndOwner); expandNppEnvironmentStrs(headerMiddlePart.c_str(), headerM, headerSize, _pdlg.hwndOwner);
} }
generic_string headerRightPart = nppGUI._printSettings._headerRight; wstring headerRightPart = nppGUI._printSettings._headerRight;
if (headerRightPart != TEXT("")) if (headerRightPart != L"")
{ {
replaceStr(headerRightPart, shortDateVar, shortDate); replaceStr(headerRightPart, shortDateVar, shortDate);
replaceStr(headerRightPart, longDateVar, longDate); replaceStr(headerRightPart, longDateVar, longDate);
@ -287,8 +288,8 @@ size_t Printer::doPrint(bool justDoIt)
{ {
frPrint.rc.bottom -= footerLineHeight + footerLineHeight / 2; frPrint.rc.bottom -= footerLineHeight + footerLineHeight / 2;
generic_string footerLeftPart = nppGUI._printSettings._footerLeft; wstring footerLeftPart = nppGUI._printSettings._footerLeft;
if (footerLeftPart != TEXT("")) if (footerLeftPart != L"")
{ {
replaceStr(footerLeftPart, shortDateVar, shortDate); replaceStr(footerLeftPart, shortDateVar, shortDate);
replaceStr(footerLeftPart, longDateVar, longDate); replaceStr(footerLeftPart, longDateVar, longDate);
@ -296,8 +297,8 @@ size_t Printer::doPrint(bool justDoIt)
expandNppEnvironmentStrs(footerLeftPart.c_str(), footerL, headerSize, _pdlg.hwndOwner); expandNppEnvironmentStrs(footerLeftPart.c_str(), footerL, headerSize, _pdlg.hwndOwner);
} }
generic_string footerMiddlePart = nppGUI._printSettings._footerMiddle; wstring footerMiddlePart = nppGUI._printSettings._footerMiddle;
if (footerMiddlePart != TEXT("")) if (footerMiddlePart != L"")
{ {
replaceStr(footerMiddlePart, shortDateVar, shortDate); replaceStr(footerMiddlePart, shortDateVar, shortDate);
replaceStr(footerMiddlePart, longDateVar, longDate); replaceStr(footerMiddlePart, longDateVar, longDate);
@ -305,8 +306,8 @@ size_t Printer::doPrint(bool justDoIt)
expandNppEnvironmentStrs(footerMiddlePart.c_str(), footerM, headerSize, _pdlg.hwndOwner); expandNppEnvironmentStrs(footerMiddlePart.c_str(), footerM, headerSize, _pdlg.hwndOwner);
} }
generic_string footerRightPart = nppGUI._printSettings._footerRight; wstring footerRightPart = nppGUI._printSettings._footerRight;
if (footerRightPart != TEXT("")) if (footerRightPart != L"")
{ {
replaceStr(footerRightPart, shortDateVar, shortDate); replaceStr(footerRightPart, shortDateVar, shortDate);
replaceStr(footerRightPart, longDateVar, longDate); replaceStr(footerRightPart, longDateVar, longDate);
@ -321,7 +322,7 @@ size_t Printer::doPrint(bool justDoIt)
_pSEView->showMargin(ScintillaEditView::_SC_MARGE_LINENUMBER, false); _pSEView->showMargin(ScintillaEditView::_SC_MARGE_LINENUMBER, false);
int pageNum = 1; int pageNum = 1;
const TCHAR pageVar[] = TEXT("$(CURRENT_PRINTING_PAGE)"); const wchar_t pageVar[] = L"$(CURRENT_PRINTING_PAGE)";
_pSEView->execute(SCI_SETPRINTCOLOURMODE, nppGUI._printSettings._printOption); // setting mode once is enough _pSEView->execute(SCI_SETPRINTCOLOURMODE, nppGUI._printSettings._printOption); // setting mode once is enough
while (lengthPrinted < lengthDoc) while (lengthPrinted < lengthDoc)
@ -332,8 +333,8 @@ size_t Printer::doPrint(bool justDoIt)
if (!justDoIt) if (!justDoIt)
printPage = false; printPage = false;
TCHAR pageString[32]{}; wchar_t pageString[32]{};
wsprintf(pageString, TEXT("%0d"), pageNum); wsprintf(pageString, L"%0d", pageNum);
if (printPage) if (printPage)
{ {
@ -357,7 +358,7 @@ size_t Printer::doPrint(bool justDoIt)
// Left part // Left part
if (headerL[0] != '\0') if (headerL[0] != '\0')
{ {
generic_string headerLeft(headerL); wstring headerLeft(headerL);
size_t pos = headerLeft.find(pageVar); size_t pos = headerLeft.find(pageVar);
if (pos != headerLeft.npos) if (pos != headerLeft.npos)
@ -370,7 +371,7 @@ size_t Printer::doPrint(bool justDoIt)
// Middle part // Middle part
if (headerM[0] != '\0') if (headerM[0] != '\0')
{ {
generic_string headerMiddle(headerM); wstring headerMiddle(headerM);
size_t pos = headerMiddle.find(pageVar); size_t pos = headerMiddle.find(pageVar);
if (pos != headerMiddle.npos) if (pos != headerMiddle.npos)
headerMiddle.replace(pos, lstrlen(pageVar), pageString); headerMiddle.replace(pos, lstrlen(pageVar), pageString);
@ -382,7 +383,7 @@ size_t Printer::doPrint(bool justDoIt)
// Right part // Right part
if (headerR[0] != '\0') if (headerR[0] != '\0')
{ {
generic_string headerRight(headerR); wstring headerRight(headerR);
size_t pos = headerRight.find(pageVar); size_t pos = headerRight.find(pageVar);
if (pos != headerRight.npos) if (pos != headerRight.npos)
headerRight.replace(pos, lstrlen(pageVar), pageString); headerRight.replace(pos, lstrlen(pageVar), pageString);
@ -424,7 +425,7 @@ size_t Printer::doPrint(bool justDoIt)
// Left part // Left part
if (footerL[0] != '\0') if (footerL[0] != '\0')
{ {
generic_string footerLeft(footerL); wstring footerLeft(footerL);
size_t pos = footerLeft.find(pageVar); size_t pos = footerLeft.find(pageVar);
if (pos != footerLeft.npos) if (pos != footerLeft.npos)
footerLeft.replace(pos, lstrlen(pageVar), pageString); footerLeft.replace(pos, lstrlen(pageVar), pageString);
@ -436,7 +437,7 @@ size_t Printer::doPrint(bool justDoIt)
// Middle part // Middle part
if (footerM[0] != '\0') if (footerM[0] != '\0')
{ {
generic_string footerMiddle(footerM); wstring footerMiddle(footerM);
size_t pos = footerMiddle.find(pageVar); size_t pos = footerMiddle.find(pageVar);
if (pos != footerMiddle.npos) if (pos != footerMiddle.npos)
footerMiddle.replace(pos, lstrlen(pageVar), pageString); footerMiddle.replace(pos, lstrlen(pageVar), pageString);
@ -448,7 +449,7 @@ size_t Printer::doPrint(bool justDoIt)
// Right part // Right part
if (footerR[0] != '\0') if (footerR[0] != '\0')
{ {
generic_string footerRight(footerR); wstring footerRight(footerR);
size_t pos = footerRight.find(pageVar); size_t pos = footerRight.find(pageVar);
if (pos != footerRight.npos) if (pos != footerRight.npos)
footerRight.replace(pos, lstrlen(pageVar), pageString); footerRight.replace(pos, lstrlen(pageVar), pageString);

View File

@ -19,6 +19,8 @@
#include "Parameters.h" #include "Parameters.h"
#include "localization.h" #include "localization.h"
using namespace std;
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(disable : 4996) // for GetVersion() #pragma warning(disable : 4996) // for GetVersion()
#endif #endif
@ -32,7 +34,7 @@ intptr_t CALLBACK AboutDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar
NppDarkMode::autoSubclassAndThemeChildControls(_hSelf); NppDarkMode::autoSubclassAndThemeChildControls(_hSelf);
HWND compileDateHandle = ::GetDlgItem(_hSelf, IDC_BUILD_DATETIME); HWND compileDateHandle = ::GetDlgItem(_hSelf, IDC_BUILD_DATETIME);
generic_string buildTime = L"Build time: "; wstring buildTime = L"Build time: ";
WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance(); WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance();
buildTime += wmc.char2wchar(__DATE__, CP_ACP); buildTime += wmc.char2wchar(__DATE__, CP_ACP);
@ -174,7 +176,7 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
// Build time // Build time
_debugInfoStr += L"Build time : "; _debugInfoStr += L"Build time : ";
generic_string buildTime; wstring buildTime;
WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance(); WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance();
buildTime += wmc.char2wchar(__DATE__, CP_ACP); buildTime += wmc.char2wchar(__DATE__, CP_ACP);
buildTime += L" - "; buildTime += L" - ";
@ -196,7 +198,7 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
// Binary path // Binary path
_debugInfoStr += L"Path : "; _debugInfoStr += L"Path : ";
TCHAR nppFullPath[MAX_PATH]{}; wchar_t nppFullPath[MAX_PATH]{};
::GetModuleFileName(NULL, nppFullPath, MAX_PATH); ::GetModuleFileName(NULL, nppFullPath, MAX_PATH);
_debugInfoStr += nppFullPath; _debugInfoStr += nppFullPath;
_debugInfoStr += L"\r\n"; _debugInfoStr += L"\r\n";
@ -220,7 +222,7 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
// Cloud config directory // Cloud config directory
_debugInfoStr += L"Cloud Config : "; _debugInfoStr += L"Cloud Config : ";
const generic_string& cloudPath = nppParam.getNppGUI()._cloudPath; const wstring& cloudPath = nppParam.getNppGUI()._cloudPath;
_debugInfoStr += cloudPath.empty() ? L"OFF" : cloudPath; _debugInfoStr += cloudPath.empty() ? L"OFF" : cloudPath;
_debugInfoStr += L"\r\n"; _debugInfoStr += L"\r\n";
@ -234,20 +236,20 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
DWORD dataSize = 0; DWORD dataSize = 0;
constexpr size_t bufSize = 96; constexpr size_t bufSize = 96;
TCHAR szProductName[bufSize] = {'\0'}; wchar_t szProductName[bufSize] = {'\0'};
constexpr size_t bufSizeBuildNumber = 32; constexpr size_t bufSizeBuildNumber = 32;
TCHAR szCurrentBuildNumber[bufSizeBuildNumber] = {'\0'}; wchar_t szCurrentBuildNumber[bufSizeBuildNumber] = {'\0'};
TCHAR szReleaseId[32] = {'\0'}; wchar_t szReleaseId[32] = {'\0'};
DWORD dwUBR = 0; DWORD dwUBR = 0;
constexpr size_t bufSizeUBR = 12; constexpr size_t bufSizeUBR = 12;
TCHAR szUBR[bufSizeUBR] = L"0"; wchar_t szUBR[bufSizeUBR] = L"0";
// NOTE: RegQueryValueExW is not guaranteed to return null-terminated strings // NOTE: RegQueryValueExW is not guaranteed to return null-terminated strings
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_READ, &hKey) == ERROR_SUCCESS) if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{ {
dataSize = sizeof(szProductName); dataSize = sizeof(szProductName);
RegQueryValueExW(hKey, L"ProductName", NULL, NULL, reinterpret_cast<LPBYTE>(szProductName), &dataSize); RegQueryValueExW(hKey, L"ProductName", NULL, NULL, reinterpret_cast<LPBYTE>(szProductName), &dataSize);
szProductName[sizeof(szProductName) / sizeof(TCHAR) - 1] = '\0'; szProductName[sizeof(szProductName) / sizeof(wchar_t) - 1] = '\0';
dataSize = sizeof(szReleaseId); dataSize = sizeof(szReleaseId);
if(RegQueryValueExW(hKey, L"DisplayVersion", NULL, NULL, reinterpret_cast<LPBYTE>(szReleaseId), &dataSize) != ERROR_SUCCESS) if(RegQueryValueExW(hKey, L"DisplayVersion", NULL, NULL, reinterpret_cast<LPBYTE>(szReleaseId), &dataSize) != ERROR_SUCCESS)
@ -255,11 +257,11 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
dataSize = sizeof(szReleaseId); dataSize = sizeof(szReleaseId);
RegQueryValueExW(hKey, L"ReleaseId", NULL, NULL, reinterpret_cast<LPBYTE>(szReleaseId), &dataSize); RegQueryValueExW(hKey, L"ReleaseId", NULL, NULL, reinterpret_cast<LPBYTE>(szReleaseId), &dataSize);
} }
szReleaseId[sizeof(szReleaseId) / sizeof(TCHAR) - 1] = '\0'; szReleaseId[sizeof(szReleaseId) / sizeof(wchar_t) - 1] = '\0';
dataSize = sizeof(szCurrentBuildNumber); dataSize = sizeof(szCurrentBuildNumber);
RegQueryValueExW(hKey, L"CurrentBuildNumber", NULL, NULL, reinterpret_cast<LPBYTE>(szCurrentBuildNumber), &dataSize); RegQueryValueExW(hKey, L"CurrentBuildNumber", NULL, NULL, reinterpret_cast<LPBYTE>(szCurrentBuildNumber), &dataSize);
szCurrentBuildNumber[sizeof(szCurrentBuildNumber) / sizeof(TCHAR) - 1] = '\0'; szCurrentBuildNumber[sizeof(szCurrentBuildNumber) / sizeof(wchar_t) - 1] = '\0';
dataSize = sizeof(DWORD); dataSize = sizeof(DWORD);
if (RegQueryValueExW(hKey, L"UBR", NULL, NULL, reinterpret_cast<LPBYTE>(&dwUBR), &dataSize) == ERROR_SUCCESS) if (RegQueryValueExW(hKey, L"UBR", NULL, NULL, reinterpret_cast<LPBYTE>(&dwUBR), &dataSize) == ERROR_SUCCESS)
@ -277,9 +279,9 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
} }
else if (NppDarkMode::isWindows11()) else if (NppDarkMode::isWindows11())
{ {
generic_string tmpProductName = szProductName; wstring tmpProductName = szProductName;
constexpr size_t strLen = 10U; constexpr size_t strLen = 10U;
const TCHAR strWin10[strLen + 1U] = L"Windows 10"; const wchar_t strWin10[strLen + 1U] = L"Windows 10";
const size_t pos = tmpProductName.find(strWin10); const size_t pos = tmpProductName.find(strWin10);
if (pos < (bufSize - strLen - 1U)) if (pos < (bufSize - strLen - 1U))
{ {
@ -322,7 +324,7 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
{ {
constexpr size_t bufSizeACP = 32; constexpr size_t bufSizeACP = 32;
TCHAR szACP[bufSizeACP] = { '\0' }; wchar_t szACP[bufSizeACP] = { '\0' };
swprintf(szACP, bufSizeACP, L"%u", ::GetACP()); swprintf(szACP, bufSizeACP, L"%u", ::GetACP());
_debugInfoStr += L"Current ANSI codepage : "; _debugInfoStr += L"Current ANSI codepage : ";
_debugInfoStr += szACP; _debugInfoStr += szACP;
@ -340,7 +342,7 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
if (pWGV != nullptr) if (pWGV != nullptr)
{ {
constexpr size_t bufSizeWineVer = 32; constexpr size_t bufSizeWineVer = 32;
TCHAR szWINEVersion[bufSizeWineVer] = { '\0' }; wchar_t szWINEVersion[bufSizeWineVer] = { '\0' };
swprintf(szWINEVersion, bufSizeWineVer, L"%hs", pWGV()); swprintf(szWINEVersion, bufSizeWineVer, L"%hs", pWGV());
_debugInfoStr += L"WINE : "; _debugInfoStr += L"WINE : ";
@ -469,14 +471,14 @@ void DoSaveOrNotBox::doDialog(bool isRTL)
void DoSaveOrNotBox::changeLang() void DoSaveOrNotBox::changeLang()
{ {
generic_string msg; wstring msg;
generic_string defaultMessage = L"Save file \"$STR_REPLACE$\" ?"; wstring defaultMessage = L"Save file \"$STR_REPLACE$\" ?";
NativeLangSpeaker* nativeLangSpeaker = NppParameters::getInstance().getNativeLangSpeaker(); NativeLangSpeaker* nativeLangSpeaker = NppParameters::getInstance().getNativeLangSpeaker();
if (nativeLangSpeaker->changeDlgLang(_hSelf, "DoSaveOrNot")) if (nativeLangSpeaker->changeDlgLang(_hSelf, "DoSaveOrNot"))
{ {
constexpr unsigned char len = 255; constexpr unsigned char len = 255;
TCHAR text[len]{}; wchar_t text[len]{};
::GetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEXT, text, len); ::GetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEXT, text, len);
msg = text; msg = text;
} }
@ -590,14 +592,14 @@ void DoSaveAllBox::doDialog(bool isRTL)
void DoSaveAllBox::changeLang() void DoSaveAllBox::changeLang()
{ {
generic_string msg; wstring msg;
generic_string defaultMessage = L"Are you sure you want to save all modified documents?\r\rChoose \"Always Yes\" if you don't want to see this dialog again.\rYou can re-activate this dialog in Preferences later."; wstring defaultMessage = L"Are you sure you want to save all modified documents?\r\rChoose \"Always Yes\" if you don't want to see this dialog again.\rYou can re-activate this dialog in Preferences later.";
NativeLangSpeaker* nativeLangSpeaker = NppParameters::getInstance().getNativeLangSpeaker(); NativeLangSpeaker* nativeLangSpeaker = NppParameters::getInstance().getNativeLangSpeaker();
if (nativeLangSpeaker->changeDlgLang(_hSelf, "DoSaveAll")) if (nativeLangSpeaker->changeDlgLang(_hSelf, "DoSaveAll"))
{ {
constexpr size_t len = 1024; constexpr size_t len = 1024;
TCHAR text[len]{}; wchar_t text[len]{};
::GetDlgItemText(_hSelf, IDC_DOSAVEALLTEXT, text, len); ::GetDlgItemText(_hSelf, IDC_DOSAVEALLTEXT, text, len);
msg = text; msg = text;
} }

View File

@ -68,7 +68,7 @@ class DebugInfoDlg : public StaticDialog
public: public:
DebugInfoDlg() = default; DebugInfoDlg() = default;
void init(HINSTANCE hInst, HWND parent, bool isAdmin, const generic_string& loadedPlugins) { void init(HINSTANCE hInst, HWND parent, bool isAdmin, const std::wstring& loadedPlugins) {
_isAdmin = isAdmin; _isAdmin = isAdmin;
_loadedPlugins = loadedPlugins; _loadedPlugins = loadedPlugins;
Window::init(hInst, parent); Window::init(hInst, parent);
@ -85,11 +85,11 @@ protected:
private: private:
typedef const CHAR * (__cdecl * PWINEGETVERSION)(); typedef const CHAR * (__cdecl * PWINEGETVERSION)();
generic_string _debugInfoStr; std::wstring _debugInfoStr;
generic_string _debugInfoDisplay; std::wstring _debugInfoDisplay;
const generic_string _cmdLinePlaceHolder { L"$COMMAND_LINE_PLACEHOLDER$" }; const std::wstring _cmdLinePlaceHolder { L"$COMMAND_LINE_PLACEHOLDER$" };
bool _isAdmin = false; bool _isAdmin = false;
generic_string _loadedPlugins; std::wstring _loadedPlugins;
}; };
class DoSaveOrNotBox : public StaticDialog class DoSaveOrNotBox : public StaticDialog
@ -97,7 +97,7 @@ class DoSaveOrNotBox : public StaticDialog
public: public:
DoSaveOrNotBox() = default; DoSaveOrNotBox() = default;
void init(HINSTANCE hInst, HWND parent, const TCHAR* fn, bool isMulti) { void init(HINSTANCE hInst, HWND parent, const wchar_t* fn, bool isMulti) {
Window::init(hInst, parent); Window::init(hInst, parent);
if (fn) if (fn)
_fn = fn; _fn = fn;
@ -120,7 +120,7 @@ protected:
private: private:
int clickedButtonId = -1; int clickedButtonId = -1;
generic_string _fn; std::wstring _fn;
bool _isMulti = false; bool _isMulti = false;
}; };

View File

@ -451,7 +451,7 @@ private:
if (extIndex >= 0 && extIndex < static_cast<int>(_filterSpec.size())) if (extIndex >= 0 && extIndex < static_cast<int>(_filterSpec.size()))
{ {
const wstring ext = get1stExt(_filterSpec[extIndex].ext); const wstring ext = get1stExt(_filterSpec[extIndex].ext);
if (!ext.ends_with(_T(".*"))) if (!ext.ends_with(L".*"))
return replaceExt(name, ext); return replaceExt(name, ext);
} }
return false; return false;
@ -493,7 +493,7 @@ private:
if (nameChanged) if (nameChanged)
{ {
// Clear the name first to ensure it's updated properly. // Clear the name first to ensure it's updated properly.
_dialog->SetFileName(_T("")); _dialog->SetFileName(L"");
_dialog->SetFileName(fileName.c_str()); _dialog->SetFileName(fileName.c_str());
} }
} }
@ -530,17 +530,17 @@ private:
if (IsWindowEnabled(hwnd) && GetClassName(hwnd, buffer, bufferLen) != 0) if (IsWindowEnabled(hwnd) && GetClassName(hwnd, buffer, bufferLen) != 0)
{ {
if (lstrcmpi(buffer, _T("ComboBox")) == 0) if (lstrcmpi(buffer, L"ComboBox") == 0)
{ {
// The edit box of interest is a child of the combo box and has empty window text. // The edit box of interest is a child of the combo box and has empty window text.
// We use the first combo box, but there might be the others (file type dropdown, address bar, etc). // We use the first combo box, but there might be the others (file type dropdown, address bar, etc).
HWND hwndChild = FindWindowEx(hwnd, nullptr, _T("Edit"), _T("")); HWND hwndChild = FindWindowEx(hwnd, nullptr, L"Edit", L"");
if (hwndChild && !inst->_hwndNameEdit) if (hwndChild && !inst->_hwndNameEdit)
{ {
inst->_hwndNameEdit = hwndChild; inst->_hwndNameEdit = hwndChild;
} }
} }
else if (lstrcmpi(buffer, _T("Button")) == 0) else if (lstrcmpi(buffer, L"Button") == 0)
{ {
// Find the OK button. // Find the OK button.
// Preconditions: // Preconditions:
@ -701,7 +701,7 @@ public:
if (!hasExt(newFileName)) if (!hasExt(newFileName))
{ {
const wstring ext = get1stExt(_filterSpec[_fileTypeIndex].ext); const wstring ext = get1stExt(_filterSpec[_fileTypeIndex].ext);
if (!ext.ends_with(_T(".*"))) if (!ext.ends_with(L".*"))
newFileName += ext; newFileName += ext;
} }
} }
@ -932,20 +932,20 @@ void CustomFileDialog::setTitle(const wchar_t* title)
void CustomFileDialog::setExtFilter(const wchar_t *extText, const wchar_t *exts) void CustomFileDialog::setExtFilter(const wchar_t *extText, const wchar_t *exts)
{ {
// Add an asterisk before each dot in file patterns // Add an asterisk before each dot in file patterns
wstring newExts{ exts ? exts : _T("") }; wstring newExts{ exts ? exts : L"" };
for (size_t pos = 0; pos < newExts.size(); ++pos) for (size_t pos = 0; pos < newExts.size(); ++pos)
{ {
pos = newExts.find(_T('.'), pos); pos = newExts.find(L'.', pos);
if (pos == wstring::npos) if (pos == wstring::npos)
break; break;
if (pos == 0 || newExts[pos - 1] != _T('*')) if (pos == 0 || newExts[pos - 1] != L'*')
{ {
newExts.insert(pos, 1, _T('*')); newExts.insert(pos, 1, L'*');
++pos; ++pos;
} }
} }
if (newExts.find(_T("*.*")) == 0) if (newExts.find(L"*.*") == 0)
_impl->_wildcardIndex = static_cast<int>(_impl->_filterSpec.size()); _impl->_wildcardIndex = static_cast<int>(_impl->_filterSpec.size());
_impl->_filterSpec.push_back({ extText, newExts }); _impl->_filterSpec.push_back({ extText, newExts });
@ -957,7 +957,7 @@ void CustomFileDialog::setExtFilter(const wchar_t *extText, std::initializer_lis
for (auto&& x : extList) for (auto&& x : extList)
{ {
exts += x; exts += x;
exts += _T(';'); exts += L';';
} }
exts.pop_back(); // remove the last ';' exts.pop_back(); // remove the last ';'
setExtFilter(extText, exts.c_str()); setExtFilter(extText, exts.c_str());
@ -975,7 +975,7 @@ void CustomFileDialog::setDefFileName(const wchar_t* fn)
void CustomFileDialog::setFolder(const wchar_t* folder) void CustomFileDialog::setFolder(const wchar_t* folder)
{ {
_impl->_initialFolder = folder ? folder : _T(""); _impl->_initialFolder = folder ? folder : L"";
} }
void CustomFileDialog::setCheckbox(const wchar_t* text, bool isActive) void CustomFileDialog::setCheckbox(const wchar_t* text, bool isActive)
@ -1024,7 +1024,7 @@ wstring CustomFileDialog::doSaveDlg()
_impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM); _impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM);
bool bOk = _impl->show(); bool bOk = _impl->show();
return bOk ? _impl->getResultFilename() : _T(""); return bOk ? _impl->getResultFilename() : L"";
} }
wstring CustomFileDialog::doOpenSingleFileDlg() wstring CustomFileDialog::doOpenSingleFileDlg()
@ -1036,7 +1036,7 @@ wstring CustomFileDialog::doOpenSingleFileDlg()
_impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM); _impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM);
bool bOk = _impl->show(); bool bOk = _impl->show();
return bOk ? _impl->getResultFilename() : _T(""); return bOk ? _impl->getResultFilename() : L"";
} }
std::vector<wstring> CustomFileDialog::doOpenMultiFilesDlg() std::vector<wstring> CustomFileDialog::doOpenMultiFilesDlg()
@ -1060,5 +1060,5 @@ wstring CustomFileDialog::pickFolder()
_impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM | FOS_PICKFOLDERS); _impl->addFlags(FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_FORCEFILESYSTEM | FOS_PICKFOLDERS);
bool bOk = _impl->show(); bool bOk = _impl->show();
return bOk ? _impl->getResultFilename() : _T(""); return bOk ? _impl->getResultFilename() : L"";
} }

View File

@ -72,7 +72,7 @@ namespace ReadDirectoryChangesPrivate
/// </para> /// </para>
/// <example><code> /// <example><code>
/// CReadDirectoryChanges changes; /// CReadDirectoryChanges changes;
/// changes.AddDirectory(_T("C:\\"), false, dwNotificationFlags); /// changes.AddDirectory(L"C:\\", false, dwNotificationFlags);
/// ///
/// const HANDLE handles[] = { hStopEvent, changes.GetWaitHandle() }; /// const HANDLE handles[] = { hStopEvent, changes.GetWaitHandle() };
/// ///

View File

@ -20,6 +20,8 @@
#include "menuCmdID.h" #include "menuCmdID.h"
#include "localization.h" #include "localization.h"
using namespace std;
void LastRecentFileList::initMenu(HMENU hMenu, int idBase, int posBase, Accelerator *pAccelerator, bool doSubMenu) void LastRecentFileList::initMenu(HMENU hMenu, int idBase, int posBase, Accelerator *pAccelerator, bool doSubMenu)
{ {
if (doSubMenu) if (doSubMenu)
@ -90,19 +92,19 @@ void LastRecentFileList::updateMenu()
//add separators //add separators
NativeLangSpeaker *pNativeLangSpeaker = nppParam.getNativeLangSpeaker(); NativeLangSpeaker *pNativeLangSpeaker = nppParam.getNativeLangSpeaker();
generic_string recentFileList = pNativeLangSpeaker->getSubMenuEntryName("file-recentFiles"); wstring recentFileList = pNativeLangSpeaker->getSubMenuEntryName("file-recentFiles");
generic_string openRecentClosedFile = pNativeLangSpeaker->getNativeLangMenuString(IDM_FILE_RESTORELASTCLOSEDFILE); wstring openRecentClosedFile = pNativeLangSpeaker->getNativeLangMenuString(IDM_FILE_RESTORELASTCLOSEDFILE);
generic_string openAllFiles = pNativeLangSpeaker->getNativeLangMenuString(IDM_OPEN_ALL_RECENT_FILE); wstring openAllFiles = pNativeLangSpeaker->getNativeLangMenuString(IDM_OPEN_ALL_RECENT_FILE);
generic_string cleanFileList = pNativeLangSpeaker->getNativeLangMenuString(IDM_CLEAN_RECENT_FILE_LIST); wstring cleanFileList = pNativeLangSpeaker->getNativeLangMenuString(IDM_CLEAN_RECENT_FILE_LIST);
if (recentFileList == TEXT("")) if (recentFileList == L"")
recentFileList = TEXT("&Recent Files"); recentFileList = L"&Recent Files";
if (openRecentClosedFile == TEXT("")) if (openRecentClosedFile == L"")
openRecentClosedFile = TEXT("Restore Recent Closed File"); openRecentClosedFile = L"Restore Recent Closed File";
if (openAllFiles == TEXT("")) if (openAllFiles == L"")
openAllFiles = TEXT("Open All Recent Files"); openAllFiles = L"Open All Recent Files";
if (cleanFileList == TEXT("")) if (cleanFileList == L"")
cleanFileList = TEXT("Empty Recent Files List"); cleanFileList = L"Empty Recent Files List";
if (!isSubMenuMode()) if (!isSubMenuMode())
::InsertMenu(_hMenu, _posBase + 0, MF_BYPOSITION, static_cast<UINT_PTR>(-1), 0); ::InsertMenu(_hMenu, _posBase + 0, MF_BYPOSITION, static_cast<UINT_PTR>(-1), 0);
@ -149,13 +151,13 @@ void LastRecentFileList::updateMenu()
//Then readd them, so everything stays in sync //Then readd them, so everything stays in sync
for (int j = 0; j < _size; ++j) for (int j = 0; j < _size; ++j)
{ {
generic_string strBuffer(BuildMenuFileName(nppParam.getRecentFileCustomLength(), j, _lrfl.at(j)._name)); wstring strBuffer(BuildMenuFileName(nppParam.getRecentFileCustomLength(), j, _lrfl.at(j)._name));
::InsertMenu(_hMenu, _posBase + j, MF_BYPOSITION, _lrfl.at(j)._id, strBuffer.c_str()); ::InsertMenu(_hMenu, _posBase + j, MF_BYPOSITION, _lrfl.at(j)._id, strBuffer.c_str());
} }
} }
void LastRecentFileList::add(const TCHAR *fn) void LastRecentFileList::add(const wchar_t *fn)
{ {
if (_userMax == 0 || _locked) if (_userMax == 0 || _locked)
return; return;
@ -183,7 +185,7 @@ void LastRecentFileList::add(const TCHAR *fn)
updateMenu(); updateMenu();
} }
void LastRecentFileList::remove(const TCHAR *fn) void LastRecentFileList::remove(const wchar_t *fn)
{ {
int index = find(fn); int index = find(fn);
if (index != -1) if (index != -1)
@ -221,7 +223,7 @@ void LastRecentFileList::clear()
} }
generic_string & LastRecentFileList::getItem(int id) wstring & LastRecentFileList::getItem(int id)
{ {
int i = 0; int i = 0;
for (; i < _size; ++i) for (; i < _size; ++i)
@ -234,7 +236,7 @@ generic_string & LastRecentFileList::getItem(int id)
return _lrfl.at(i)._name; //if not found, return first return _lrfl.at(i)._name; //if not found, return first
} }
generic_string & LastRecentFileList::getIndex(int index) wstring & LastRecentFileList::getIndex(int index)
{ {
return _lrfl.at(index)._name; //if not found, return first return _lrfl.at(index)._name; //if not found, return first
} }
@ -274,7 +276,7 @@ void LastRecentFileList::saveLRFL()
} }
int LastRecentFileList::find(const TCHAR *fn) int LastRecentFileList::find(const wchar_t *fn)
{ {
for (int i = 0; i < _size; ++i) for (int i = 0; i < _size; ++i)
{ {

View File

@ -22,8 +22,8 @@
struct RecentItem { struct RecentItem {
int _id = 0; int _id = 0;
generic_string _name; std::wstring _name;
explicit RecentItem(const TCHAR * name) : _name(name) {}; explicit RecentItem(const wchar_t * name) : _name(name) {};
}; };
typedef std::deque<RecentItem> recentList; typedef std::deque<RecentItem> recentList;
@ -39,8 +39,8 @@ public:
void switchMode(); void switchMode();
void updateMenu(); void updateMenu();
void add(const TCHAR *fn); void add(const wchar_t *fn);
void remove(const TCHAR *fn); void remove(const wchar_t *fn);
void remove(size_t index); void remove(size_t index);
void clear(); void clear();
@ -57,12 +57,12 @@ public:
return _userMax; return _userMax;
}; };
generic_string & getItem(int id); //use menu id std::wstring & getItem(int id); //use menu id
generic_string & getIndex(int index); //use menu id std::wstring & getIndex(int index); //use menu id
generic_string getFirstItem() const { std::wstring getFirstItem() const {
if (_lrfl.size() == 0) if (_lrfl.size() == 0)
return TEXT(""); return L"";
return _lrfl.front()._name; return _lrfl.front()._name;
}; };
@ -98,7 +98,7 @@ private:
bool _hasSeparators = false; bool _hasSeparators = false;
bool _locked = false; bool _locked = false;
int find(const TCHAR *fn); int find(const wchar_t *fn);
int popFirstAvailableID(); int popFirstAvailableID();
void setAvailable(int id); void setAvailable(int id);
}; };

View File

@ -180,15 +180,15 @@ void NativeLangSpeaker::init(TiXmlDocumentA *nativeLangDocRootA, bool loadIfEngl
} }
} }
generic_string NativeLangSpeaker::getSubMenuEntryName(const char *nodeName) const wstring NativeLangSpeaker::getSubMenuEntryName(const char *nodeName) const
{ {
if (!_nativeLangA) return TEXT(""); if (!_nativeLangA) return L"";
TiXmlNodeA *mainMenu = _nativeLangA->FirstChild("Menu"); TiXmlNodeA *mainMenu = _nativeLangA->FirstChild("Menu");
if (!mainMenu) return TEXT(""); if (!mainMenu) return L"";
mainMenu = mainMenu->FirstChild("Main"); mainMenu = mainMenu->FirstChild("Main");
if (!mainMenu) return TEXT(""); if (!mainMenu) return L"";
TiXmlNodeA *entriesRoot = mainMenu->FirstChild("SubEntries"); TiXmlNodeA *entriesRoot = mainMenu->FirstChild("SubEntries");
if (!entriesRoot) return TEXT(""); if (!entriesRoot) return L"";
WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance(); WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance();
@ -208,7 +208,7 @@ generic_string NativeLangSpeaker::getSubMenuEntryName(const char *nodeName) cons
} }
} }
} }
return TEXT(""); return L"";
} }
void purifyMenuString(string& s) void purifyMenuString(string& s)
@ -251,7 +251,7 @@ void purifyMenuString(string& s)
} }
generic_string NativeLangSpeaker::getNativeLangMenuString(int itemID, generic_string inCaseOfFailureStr, bool removeMarkAnd) const wstring NativeLangSpeaker::getNativeLangMenuString(int itemID, wstring inCaseOfFailureStr, bool removeMarkAnd) const
{ {
if (!_nativeLangA) if (!_nativeLangA)
return inCaseOfFailureStr; return inCaseOfFailureStr;
@ -291,19 +291,19 @@ generic_string NativeLangSpeaker::getNativeLangMenuString(int itemID, generic_st
return inCaseOfFailureStr; return inCaseOfFailureStr;
} }
generic_string NativeLangSpeaker::getShortcutNameString(int itemID) const wstring NativeLangSpeaker::getShortcutNameString(int itemID) const
{ {
if (!_nativeLangA) if (!_nativeLangA)
return TEXT(""); return L"";
TiXmlNodeA *node = _nativeLangA->FirstChild("Dialog"); TiXmlNodeA *node = _nativeLangA->FirstChild("Dialog");
if (!node) return TEXT(""); if (!node) return L"";
node = node->FirstChild("ShortcutMapper"); node = node->FirstChild("ShortcutMapper");
if (!node) return TEXT(""); if (!node) return L"";
node = node->FirstChild("MainCommandNames"); node = node->FirstChild("MainCommandNames");
if (!node) return TEXT(""); if (!node) return L"";
WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance(); WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance();
@ -322,10 +322,10 @@ generic_string NativeLangSpeaker::getShortcutNameString(int itemID) const
} }
} }
} }
return TEXT(""); return L"";
} }
generic_string NativeLangSpeaker::getLocalizedStrFromID(const char *strID, const generic_string& defaultString) const wstring NativeLangSpeaker::getLocalizedStrFromID(const char *strID, const wstring& defaultString) const
{ {
if (!_nativeLangA) if (!_nativeLangA)
return defaultString; return defaultString;
@ -789,7 +789,7 @@ void NativeLangSpeaker::changeUserDefineLang(UserDefineDialog *userDefineDlg)
{ {
if (id == IDC_DOCK_BUTTON && userDefineDlg->isDocked()) if (id == IDC_DOCK_BUTTON && userDefineDlg->isDocked())
{ {
generic_string undockStr = getAttrNameByIdStr(TEXT("Undock"), userDefineDlgNode, std::to_string(IDC_UNDOCK_BUTTON).c_str()); wstring undockStr = getAttrNameByIdStr(L"Undock", userDefineDlgNode, std::to_string(IDC_UNDOCK_BUTTON).c_str());
::SetWindowText(hItem, undockStr.c_str()); ::SetWindowText(hItem, undockStr.c_str());
} }
else else
@ -982,146 +982,146 @@ void NativeLangSpeaker::changePrefereceDlgLang(PreferenceDlg & preference)
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Global"), nameW); preference.renameDialogTitle(L"Global", nameW);
} }
changeDlgLang(preference._editingSubDlg.getHSelf(), "Scintillas", titre, titreMaxSize); changeDlgLang(preference._editingSubDlg.getHSelf(), "Scintillas", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Scintillas"), nameW); preference.renameDialogTitle(L"Scintillas", nameW);
} }
changeDlgLang(preference._editing2SubDlg.getHSelf(), "Scintillas2", titre, titreMaxSize); changeDlgLang(preference._editing2SubDlg.getHSelf(), "Scintillas2", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Scintillas2"), nameW); preference.renameDialogTitle(L"Scintillas2", nameW);
} }
changeDlgLang(preference._darkModeSubDlg.getHSelf(), "DarkMode", titre, titreMaxSize); changeDlgLang(preference._darkModeSubDlg.getHSelf(), "DarkMode", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t* nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t* nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("DarkMode"), nameW); preference.renameDialogTitle(L"DarkMode", nameW);
} }
changeDlgLang(preference._marginsBorderEdgeSubDlg.getHSelf(), "MarginsBorderEdge", titre, titreMaxSize); changeDlgLang(preference._marginsBorderEdgeSubDlg.getHSelf(), "MarginsBorderEdge", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("MarginsBorderEdge"), nameW); preference.renameDialogTitle(L"MarginsBorderEdge", nameW);
} }
changeDlgLang(preference._newDocumentSubDlg.getHSelf(), "NewDoc", titre, titreMaxSize); changeDlgLang(preference._newDocumentSubDlg.getHSelf(), "NewDoc", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("NewDoc"), nameW); preference.renameDialogTitle(L"NewDoc", nameW);
} }
changeDlgLang(preference._defaultDirectorySubDlg.getHSelf(), "DefaultDir", titre, titreMaxSize); changeDlgLang(preference._defaultDirectorySubDlg.getHSelf(), "DefaultDir", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("DefaultDir"), nameW); preference.renameDialogTitle(L"DefaultDir", nameW);
} }
changeDlgLang(preference._recentFilesHistorySubDlg.getHSelf(), "RecentFilesHistory", titre, titreMaxSize); changeDlgLang(preference._recentFilesHistorySubDlg.getHSelf(), "RecentFilesHistory", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("RecentFilesHistory"), nameW); preference.renameDialogTitle(L"RecentFilesHistory", nameW);
} }
changeDlgLang(preference._fileAssocDlg.getHSelf(), "FileAssoc", titre, titreMaxSize); changeDlgLang(preference._fileAssocDlg.getHSelf(), "FileAssoc", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("FileAssoc"), nameW); preference.renameDialogTitle(L"FileAssoc", nameW);
} }
changeDlgLang(preference._languageSubDlg.getHSelf(), "Language", titre, titreMaxSize); changeDlgLang(preference._languageSubDlg.getHSelf(), "Language", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Language"), nameW); preference.renameDialogTitle(L"Language", nameW);
} }
changeDlgLang(preference._highlightingSubDlg.getHSelf(), "Highlighting", titre, titreMaxSize); changeDlgLang(preference._highlightingSubDlg.getHSelf(), "Highlighting", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Highlighting"), nameW); preference.renameDialogTitle(L"Highlighting", nameW);
} }
changeDlgLang(preference._printSubDlg.getHSelf(), "Print", titre, titreMaxSize); changeDlgLang(preference._printSubDlg.getHSelf(), "Print", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Print"), nameW); preference.renameDialogTitle(L"Print", nameW);
} }
changeDlgLang(preference._searchingSubDlg.getHSelf(), "Searching", titre, titreMaxSize); changeDlgLang(preference._searchingSubDlg.getHSelf(), "Searching", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t* nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t* nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Searching"), nameW); preference.renameDialogTitle(L"Searching", nameW);
} }
changeDlgLang(preference._miscSubDlg.getHSelf(), "MISC", titre, titreMaxSize); changeDlgLang(preference._miscSubDlg.getHSelf(), "MISC", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("MISC"), nameW); preference.renameDialogTitle(L"MISC", nameW);
} }
changeDlgLang(preference._backupSubDlg.getHSelf(), "Backup", titre, titreMaxSize); changeDlgLang(preference._backupSubDlg.getHSelf(), "Backup", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Backup"), nameW); preference.renameDialogTitle(L"Backup", nameW);
} }
changeDlgLang(preference._autoCompletionSubDlg.getHSelf(), "AutoCompletion", titre, titreMaxSize); changeDlgLang(preference._autoCompletionSubDlg.getHSelf(), "AutoCompletion", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("AutoCompletion"), nameW); preference.renameDialogTitle(L"AutoCompletion", nameW);
} }
changeDlgLang(preference._multiInstanceSubDlg.getHSelf(), "MultiInstance", titre, titreMaxSize); changeDlgLang(preference._multiInstanceSubDlg.getHSelf(), "MultiInstance", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("MultiInstance"), nameW); preference.renameDialogTitle(L"MultiInstance", nameW);
} }
changeDlgLang(preference._delimiterSubDlg.getHSelf(), "Delimiter", titre, titreMaxSize); changeDlgLang(preference._delimiterSubDlg.getHSelf(), "Delimiter", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Delimiter"), nameW); preference.renameDialogTitle(L"Delimiter", nameW);
} }
changeDlgLang(preference._performanceSubDlg.getHSelf(), "Performance", titre, titreMaxSize); changeDlgLang(preference._performanceSubDlg.getHSelf(), "Performance", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Performance"), nameW); preference.renameDialogTitle(L"Performance", nameW);
} }
changeDlgLang(preference._cloudAndLinkSubDlg.getHSelf(), "Cloud", titre, titreMaxSize); changeDlgLang(preference._cloudAndLinkSubDlg.getHSelf(), "Cloud", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("Cloud"), nameW); preference.renameDialogTitle(L"Cloud", nameW);
} }
changeDlgLang(preference._searchEngineSubDlg.getHSelf(), "SearchEngine", titre, titreMaxSize); changeDlgLang(preference._searchEngineSubDlg.getHSelf(), "SearchEngine", titre, titreMaxSize);
if (titre[0] != '\0') if (titre[0] != '\0')
{ {
const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding); const wchar_t *nameW = wmc.char2wchar(titre, _nativeLangEncoding);
preference.renameDialogTitle(TEXT("SearchEngine"), nameW); preference.renameDialogTitle(L"SearchEngine", nameW);
} }
preference.setListSelection(currentSel); preference.setListSelection(currentSel);
@ -1193,7 +1193,7 @@ void NativeLangSpeaker::changeShortcutLang()
} }
generic_string NativeLangSpeaker::getShortcutMapperLangStr(const char *nodeName, const TCHAR *defaultStr) const wstring NativeLangSpeaker::getShortcutMapperLangStr(const char *nodeName, const wchar_t *defaultStr) const
{ {
if (!_nativeLangA) return defaultStr; if (!_nativeLangA) return defaultStr;
@ -1231,7 +1231,7 @@ TiXmlNodeA * NativeLangSpeaker::searchDlgNode(TiXmlNodeA *node, const char *dlgT
return NULL; return NULL;
} }
bool NativeLangSpeaker::getDoSaveOrNotStrings(generic_string& title, generic_string& msg) bool NativeLangSpeaker::getDoSaveOrNotStrings(wstring& title, wstring& msg)
{ {
if (!_nativeLangA) return false; if (!_nativeLangA) return false;
@ -1322,7 +1322,7 @@ bool NativeLangSpeaker::changeDlgLang(HWND hDlg, const char *dlgTagName, char *t
childNode; childNode;
childNode = childNode->NextSibling("ComboBox")) childNode = childNode->NextSibling("ComboBox"))
{ {
std::vector<generic_string> comboElms; std::vector<wstring> comboElms;
TiXmlElementA *element = childNode->ToElement(); TiXmlElementA *element = childNode->ToElement();
int id; int id;
element->Attribute("id", &id); element->Attribute("id", &id);
@ -1361,10 +1361,10 @@ bool NativeLangSpeaker::changeDlgLang(HWND hDlg, const char *dlgTagName, char *t
return true; return true;
} }
bool NativeLangSpeaker::getMsgBoxLang(const char *msgBoxTagName, generic_string & title, generic_string & message) bool NativeLangSpeaker::getMsgBoxLang(const char *msgBoxTagName, wstring & title, wstring & message)
{ {
title = TEXT(""); title = L"";
message = TEXT(""); message = L"";
if (!_nativeLangA) return false; if (!_nativeLangA) return false;
@ -1388,7 +1388,7 @@ bool NativeLangSpeaker::getMsgBoxLang(const char *msgBoxTagName, generic_string
return false; return false;
} }
generic_string NativeLangSpeaker::getDlgLangMenuStr(const char* firstLevelNodeName, const char* secondLevelNodeName, int cmdID, const TCHAR* defaultStr) const wstring NativeLangSpeaker::getDlgLangMenuStr(const char* firstLevelNodeName, const char* secondLevelNodeName, int cmdID, const wchar_t* defaultStr) const
{ {
if (!_nativeLangA) return defaultStr; if (!_nativeLangA) return defaultStr;
@ -1428,7 +1428,7 @@ generic_string NativeLangSpeaker::getDlgLangMenuStr(const char* firstLevelNodeNa
return defaultStr; return defaultStr;
} }
generic_string NativeLangSpeaker::getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const wstring NativeLangSpeaker::getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const wchar_t *defaultStr) const
{ {
if (!_nativeLangA) return defaultStr; if (!_nativeLangA) return defaultStr;
@ -1465,7 +1465,7 @@ generic_string NativeLangSpeaker::getProjectPanelLangMenuStr(const char * nodeNa
return defaultStr; return defaultStr;
} }
generic_string NativeLangSpeaker::getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name, const char *nodeL3Name) const wstring NativeLangSpeaker::getAttrNameStr(const wchar_t *defaultStr, const char *nodeL1Name, const char *nodeL2Name, const char *nodeL3Name) const
{ {
if (!_nativeLangA) return defaultStr; if (!_nativeLangA) return defaultStr;
@ -1485,7 +1485,7 @@ generic_string NativeLangSpeaker::getAttrNameStr(const TCHAR *defaultStr, const
return defaultStr; return defaultStr;
} }
generic_string NativeLangSpeaker::getAttrNameByIdStr(const TCHAR *defaultStr, TiXmlNodeA *targetNode, const char *nodeL1Value, const char *nodeL1Name, const char *nodeL2Name) const wstring NativeLangSpeaker::getAttrNameByIdStr(const wchar_t *defaultStr, TiXmlNodeA *targetNode, const char *nodeL1Value, const char *nodeL1Name, const char *nodeL2Name) const
{ {
if (!targetNode) return defaultStr; if (!targetNode) return defaultStr;
@ -1508,23 +1508,23 @@ generic_string NativeLangSpeaker::getAttrNameByIdStr(const TCHAR *defaultStr, Ti
return defaultStr; return defaultStr;
} }
int NativeLangSpeaker::messageBox(const char *msgBoxTagName, HWND hWnd, const TCHAR *defaultMessage, const TCHAR *defaultTitle, int msgBoxType, int intInfo, const TCHAR *strInfo) int NativeLangSpeaker::messageBox(const char *msgBoxTagName, HWND hWnd, const wchar_t *defaultMessage, const wchar_t *defaultTitle, int msgBoxType, int intInfo, const wchar_t *strInfo)
{ {
if ((NppParameters::getInstance()).isEndSessionCritical()) if ((NppParameters::getInstance()).isEndSessionCritical())
return IDCANCEL; // simulate Esc-key or Cancel-button as there should not be any big delay / code-flow block return IDCANCEL; // simulate Esc-key or Cancel-button as there should not be any big delay / code-flow block
generic_string msg, title; wstring msg, title;
if (!getMsgBoxLang(msgBoxTagName, title, msg)) if (!getMsgBoxLang(msgBoxTagName, title, msg))
{ {
title = defaultTitle; title = defaultTitle;
msg = defaultMessage; msg = defaultMessage;
} }
title = stringReplace(title, TEXT("$INT_REPLACE$"), std::to_wstring(intInfo)); title = stringReplace(title, L"$INT_REPLACE$", std::to_wstring(intInfo));
msg = stringReplace(msg, TEXT("$INT_REPLACE$"), std::to_wstring(intInfo)); msg = stringReplace(msg, L"$INT_REPLACE$", std::to_wstring(intInfo));
if (strInfo) if (strInfo)
{ {
title = stringReplace(title, TEXT("$STR_REPLACE$"), strInfo); title = stringReplace(title, L"$STR_REPLACE$", strInfo);
msg = stringReplace(msg, TEXT("$STR_REPLACE$"), strInfo); msg = stringReplace(msg, L"$STR_REPLACE$", strInfo);
} }
if (_isRTL) if (_isRTL)
{ {

View File

@ -46,9 +46,9 @@ public:
bool changeDlgLang(HWND hDlg, const char *dlgTagName, char *title = NULL, size_t titleMaxSize = 0); bool changeDlgLang(HWND hDlg, const char *dlgTagName, char *title = NULL, size_t titleMaxSize = 0);
void changeLangTabDropContextMenu(HMENU hCM); void changeLangTabDropContextMenu(HMENU hCM);
void changeLangTrayIconContexMenu(HMENU hCM); void changeLangTrayIconContexMenu(HMENU hCM);
generic_string getSubMenuEntryName(const char *nodeName) const; std::wstring getSubMenuEntryName(const char *nodeName) const;
generic_string getNativeLangMenuString(int itemID, generic_string inCaseOfFailureStr = L"", bool removeMarkAnd = false) const; std::wstring getNativeLangMenuString(int itemID, std::wstring inCaseOfFailureStr = L"", bool removeMarkAnd = false) const;
generic_string getShortcutNameString(int itemID) const; std::wstring getShortcutNameString(int itemID) const;
void changeMenuLang(HMENU menuHandle); void changeMenuLang(HMENU menuHandle);
void changeShortcutLang(); void changeShortcutLang();
@ -59,7 +59,7 @@ public:
void changePrefereceDlgLang(PreferenceDlg & preference); void changePrefereceDlgLang(PreferenceDlg & preference);
void changePluginsAdminDlgLang(PluginsAdminDlg & pluginsAdminDlg); void changePluginsAdminDlgLang(PluginsAdminDlg & pluginsAdminDlg);
bool getDoSaveOrNotStrings(generic_string& title, generic_string& msg); bool getDoSaveOrNotStrings(std::wstring& title, std::wstring& msg);
bool isRTL() const { bool isRTL() const {
return _isRTL; return _isRTL;
@ -80,20 +80,20 @@ public:
int getLangEncoding() const { int getLangEncoding() const {
return _nativeLangEncoding; return _nativeLangEncoding;
}; };
bool getMsgBoxLang(const char *msgBoxTagName, generic_string & title, generic_string & message); bool getMsgBoxLang(const char *msgBoxTagName, std::wstring & title, std::wstring & message);
generic_string getShortcutMapperLangStr(const char *nodeName, const TCHAR *defaultStr) const; std::wstring getShortcutMapperLangStr(const char *nodeName, const wchar_t *defaultStr) const;
generic_string getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const TCHAR *defaultStr) const; std::wstring getProjectPanelLangMenuStr(const char * nodeName, int cmdID, const wchar_t *defaultStr) const;
generic_string getDlgLangMenuStr(const char* firstLevelNodeName, const char* secondLevelNodeName, int cmdID, const TCHAR *defaultStr) const; std::wstring getDlgLangMenuStr(const char* firstLevelNodeName, const char* secondLevelNodeName, int cmdID, const wchar_t *defaultStr) const;
generic_string getAttrNameStr(const TCHAR *defaultStr, const char *nodeL1Name, const char *nodeL2Name, const char *nodeL3Name = "name") const; std::wstring getAttrNameStr(const wchar_t *defaultStr, const char *nodeL1Name, const char *nodeL2Name, const char *nodeL3Name = "name") const;
generic_string getAttrNameByIdStr(const TCHAR *defaultStr, TiXmlNodeA *targetNode, const char *nodeL1Value, const char *nodeL1Name = "id", const char *nodeL2Name = "name") const; std::wstring getAttrNameByIdStr(const wchar_t *defaultStr, TiXmlNodeA *targetNode, const char *nodeL1Value, const char *nodeL1Name = "id", const char *nodeL2Name = "name") const;
generic_string getLocalizedStrFromID(const char *strID, const generic_string& defaultString) const; std::wstring getLocalizedStrFromID(const char *strID, const std::wstring& defaultString) const;
void getMainMenuEntryName(std::wstring& dest, HMENU hMenu, const char* menuIdStr, const wchar_t* defaultDest); void getMainMenuEntryName(std::wstring& dest, HMENU hMenu, const char* menuIdStr, const wchar_t* defaultDest);
void resetShortcutMenuNameMap() { void resetShortcutMenuNameMap() {
_shortcutMenuEntryNameMap.clear(); _shortcutMenuEntryNameMap.clear();
}; };
int messageBox(const char *msgBoxTagName, HWND hWnd, const TCHAR *message, const TCHAR *title, int msgBoxType, int intInfo = 0, const TCHAR *strInfo = NULL); int messageBox(const char *msgBoxTagName, HWND hWnd, const wchar_t *message, const wchar_t *title, int msgBoxType, int intInfo = 0, const wchar_t *strInfo = NULL);
private: private:
TiXmlNodeA *_nativeLangA = nullptr; TiXmlNodeA *_nativeLangA = nullptr;
int _nativeLangEncoding = CP_ACP; int _nativeLangEncoding = CP_ACP;

View File

@ -42,7 +42,7 @@ void allowPrivilegeMessages(const Notepad_plus_Window& notepad_plus_plus, winVer
// This (WM_COPYDATA) allows opening new files to already opened elevated Notepad++ process via explorer context menu. // This (WM_COPYDATA) allows opening new files to already opened elevated Notepad++ process via explorer context menu.
if (winVer >= WV_VISTA || winVer == WV_UNKNOWN) if (winVer >= WV_VISTA || winVer == WV_UNKNOWN)
{ {
HMODULE hDll = GetModuleHandle(TEXT("user32.dll")); HMODULE hDll = GetModuleHandle(L"user32.dll");
if (hDll) if (hDll)
{ {
// According to MSDN ChangeWindowMessageFilter may not be supported in future versions of Windows, // According to MSDN ChangeWindowMessageFilter may not be supported in future versions of Windows,
@ -83,15 +83,15 @@ void allowPrivilegeMessages(const Notepad_plus_Window& notepad_plus_plus, winVer
// 2. "-z" // 2. "-z"
// 3. "C:\WINDOWS\system32\NOTEPAD.EXE" // 3. "C:\WINDOWS\system32\NOTEPAD.EXE"
// 4. "C:\my folder\my file with whitespace.txt" // 4. "C:\my folder\my file with whitespace.txt"
void parseCommandLine(const TCHAR* commandLine, ParamVector& paramVector) void parseCommandLine(const wchar_t* commandLine, ParamVector& paramVector)
{ {
if (!commandLine) if (!commandLine)
return; return;
TCHAR* cmdLine = new TCHAR[lstrlen(commandLine) + 1]; wchar_t* cmdLine = new wchar_t[lstrlen(commandLine) + 1];
lstrcpy(cmdLine, commandLine); lstrcpy(cmdLine, commandLine);
TCHAR* cmdLinePtr = cmdLine; wchar_t* cmdLinePtr = cmdLine;
bool isBetweenFileNameQuotes = false; bool isBetweenFileNameQuotes = false;
bool isStringInArg = false; bool isStringInArg = false;
@ -105,7 +105,7 @@ void parseCommandLine(const TCHAR* commandLine, ParamVector& paramVector)
// when zArg == 2 shouldBeTerminated will be set to true - it will trigger the treatment which consider the rest as a argument, with or without white space(s). // when zArg == 2 shouldBeTerminated will be set to true - it will trigger the treatment which consider the rest as a argument, with or without white space(s).
size_t commandLength = lstrlen(cmdLinePtr); size_t commandLength = lstrlen(cmdLinePtr);
std::vector<TCHAR *> args; std::vector<wchar_t *> args;
for (size_t i = 0; i < commandLength && !shouldBeTerminated; ++i) for (size_t i = 0; i < commandLength && !shouldBeTerminated; ++i)
{ {
switch (cmdLinePtr[i]) switch (cmdLinePtr[i])
@ -156,7 +156,7 @@ void parseCommandLine(const TCHAR* commandLine, ParamVector& paramVector)
} }
break; break;
default: //default TCHAR, if beginning of word, add it default: //default wchar_t, if beginning of word, add it
{ {
if (!isBetweenFileNameQuotes && !isStringInArg && isInWhiteSpace) if (!isBetweenFileNameQuotes && !isStringInArg && isInWhiteSpace)
{ {
@ -181,14 +181,14 @@ void convertParamsToNotepadStyle(ParamVector& params)
{ {
for (auto it = params.begin(); it != params.end(); ++it) for (auto it = params.begin(); it != params.end(); ++it)
{ {
if (lstrcmp(it->c_str(), TEXT("/p")) == 0 || lstrcmp(it->c_str(), TEXT("/P")) == 0) if (lstrcmp(it->c_str(), L"/p") == 0 || lstrcmp(it->c_str(), L"/P") == 0)
{ {
it->assign(TEXT("-quickPrint")); it->assign(L"-quickPrint");
} }
} }
} }
bool isInList(const TCHAR *token2Find, ParamVector& params, bool eraseArg = true) bool isInList(const wchar_t *token2Find, ParamVector& params, bool eraseArg = true)
{ {
for (auto it = params.begin(); it != params.end(); ++it) for (auto it = params.begin(); it != params.end(); ++it)
{ {
@ -201,14 +201,14 @@ bool isInList(const TCHAR *token2Find, ParamVector& params, bool eraseArg = true
return false; return false;
} }
bool getParamVal(TCHAR c, ParamVector & params, std::wstring & value) bool getParamVal(wchar_t c, ParamVector & params, std::wstring & value)
{ {
value = TEXT(""); value = L"";
size_t nbItems = params.size(); size_t nbItems = params.size();
for (size_t i = 0; i < nbItems; ++i) for (size_t i = 0; i < nbItems; ++i)
{ {
const TCHAR * token = params.at(i).c_str(); const wchar_t * token = params.at(i).c_str();
if (token[0] == '-' && lstrlen(token) >= 2 && token[1] == c) //dash, and enough chars if (token[0] == '-' && lstrlen(token) >= 2 && token[1] == c) //dash, and enough chars
{ {
value = (token+2); value = (token+2);
@ -219,14 +219,14 @@ bool getParamVal(TCHAR c, ParamVector & params, std::wstring & value)
return false; return false;
} }
bool getParamValFromString(const TCHAR *str, ParamVector & params, std::wstring & value) bool getParamValFromString(const wchar_t *str, ParamVector & params, std::wstring & value)
{ {
value = TEXT(""); value = L"";
size_t nbItems = params.size(); size_t nbItems = params.size();
for (size_t i = 0; i < nbItems; ++i) for (size_t i = 0; i < nbItems; ++i)
{ {
const TCHAR * token = params.at(i).c_str(); const wchar_t * token = params.at(i).c_str();
std::wstring tokenStr = token; std::wstring tokenStr = token;
size_t pos = tokenStr.find(str); size_t pos = tokenStr.find(str);
if (pos != std::wstring::npos && pos == 0) if (pos != std::wstring::npos && pos == 0)
@ -251,8 +251,8 @@ std::wstring getLocalizationPathFromParam(ParamVector & params)
{ {
std::wstring locStr; std::wstring locStr;
if (!getParamVal('L', params, locStr)) if (!getParamVal('L', params, locStr))
return TEXT(""); return L"";
locStr = stringToLower(stringReplace(locStr, TEXT("_"), TEXT("-"))); // convert to lowercase format with "-" as separator locStr = stringToLower(stringReplace(locStr, L"_", L"-")); // convert to lowercase format with "-" as separator
return NppParameters::getLocPathFromStr(locStr.c_str()); return NppParameters::getLocPathFromStr(locStr.c_str());
} }
@ -271,12 +271,12 @@ intptr_t getNumberFromParam(char paramName, ParamVector & params, bool & isParam
std::wstring getEasterEggNameFromParam(ParamVector & params, unsigned char & type) std::wstring getEasterEggNameFromParam(ParamVector & params, unsigned char & type)
{ {
std::wstring EasterEggName; std::wstring EasterEggName;
if (!getParamValFromString(TEXT("-qn="), params, EasterEggName)) // get internal easter egg if (!getParamValFromString(L"-qn=", params, EasterEggName)) // get internal easter egg
{ {
if (!getParamValFromString(TEXT("-qt="), params, EasterEggName)) // get user quote from cmdline argument if (!getParamValFromString(L"-qt=", params, EasterEggName)) // get user quote from cmdline argument
{ {
if (!getParamValFromString(TEXT("-qf="), params, EasterEggName)) // get user quote from a content of file if (!getParamValFromString(L"-qf=", params, EasterEggName)) // get user quote from a content of file
return TEXT(""); return L"";
else else
{ {
type = 2; // quote content in file type = 2; // quote content in file
@ -302,7 +302,7 @@ std::wstring getEasterEggNameFromParam(ParamVector & params, unsigned char & typ
int getGhostTypingSpeedFromParam(ParamVector & params) int getGhostTypingSpeedFromParam(ParamVector & params)
{ {
std::wstring speedStr; std::wstring speedStr;
if (!getParamValFromString(TEXT("-qSpeed"), params, speedStr)) if (!getParamValFromString(L"-qSpeed", params, speedStr))
return -1; return -1;
int speed = std::stoi(speedStr, 0); int speed = std::stoi(speedStr, 0);
@ -312,46 +312,46 @@ int getGhostTypingSpeedFromParam(ParamVector & params)
return speed; return speed;
} }
const TCHAR FLAG_MULTI_INSTANCE[] = TEXT("-multiInst"); const wchar_t FLAG_MULTI_INSTANCE[] = L"-multiInst";
const TCHAR FLAG_NO_PLUGIN[] = TEXT("-noPlugin"); const wchar_t FLAG_NO_PLUGIN[] = L"-noPlugin";
const TCHAR FLAG_READONLY[] = TEXT("-ro"); const wchar_t FLAG_READONLY[] = L"-ro";
const TCHAR FLAG_NOSESSION[] = TEXT("-nosession"); const wchar_t FLAG_NOSESSION[] = L"-nosession";
const TCHAR FLAG_NOTABBAR[] = TEXT("-notabbar"); const wchar_t FLAG_NOTABBAR[] = L"-notabbar";
const TCHAR FLAG_SYSTRAY[] = TEXT("-systemtray"); const wchar_t FLAG_SYSTRAY[] = L"-systemtray";
const TCHAR FLAG_LOADINGTIME[] = TEXT("-loadingTime"); const wchar_t FLAG_LOADINGTIME[] = L"-loadingTime";
const TCHAR FLAG_HELP[] = TEXT("--help"); const wchar_t FLAG_HELP[] = L"--help";
const TCHAR FLAG_ALWAYS_ON_TOP[] = TEXT("-alwaysOnTop"); const wchar_t FLAG_ALWAYS_ON_TOP[] = L"-alwaysOnTop";
const TCHAR FLAG_OPENSESSIONFILE[] = TEXT("-openSession"); const wchar_t FLAG_OPENSESSIONFILE[] = L"-openSession";
const TCHAR FLAG_RECURSIVE[] = TEXT("-r"); const wchar_t FLAG_RECURSIVE[] = L"-r";
const TCHAR FLAG_FUNCLSTEXPORT[] = TEXT("-export=functionList"); const wchar_t FLAG_FUNCLSTEXPORT[] = L"-export=functionList";
const TCHAR FLAG_PRINTANDQUIT[] = TEXT("-quickPrint"); const wchar_t FLAG_PRINTANDQUIT[] = L"-quickPrint";
const TCHAR FLAG_NOTEPAD_COMPATIBILITY[] = TEXT("-notepadStyleCmdline"); const wchar_t FLAG_NOTEPAD_COMPATIBILITY[] = L"-notepadStyleCmdline";
const TCHAR FLAG_OPEN_FOLDERS_AS_WORKSPACE[] = TEXT("-openFoldersAsWorkspace"); const wchar_t FLAG_OPEN_FOLDERS_AS_WORKSPACE[] = L"-openFoldersAsWorkspace";
const TCHAR FLAG_SETTINGS_DIR[] = TEXT("-settingsDir="); const wchar_t FLAG_SETTINGS_DIR[] = L"-settingsDir=";
const TCHAR FLAG_TITLEBAR_ADD[] = TEXT("-titleAdd="); const wchar_t FLAG_TITLEBAR_ADD[] = L"-titleAdd=";
const TCHAR FLAG_APPLY_UDL[] = TEXT("-udl="); const wchar_t FLAG_APPLY_UDL[] = L"-udl=";
const TCHAR FLAG_PLUGIN_MESSAGE[] = TEXT("-pluginMessage="); const wchar_t FLAG_PLUGIN_MESSAGE[] = L"-pluginMessage=";
const TCHAR FLAG_MONITOR_FILES[] = TEXT("-monitor"); const wchar_t FLAG_MONITOR_FILES[] = L"-monitor";
void doException(Notepad_plus_Window & notepad_plus_plus) void doException(Notepad_plus_Window & notepad_plus_plus)
{ {
Win32Exception::removeHandler(); //disable exception handler after excpetion, we dont want corrupt data structurs to crash the exception handler Win32Exception::removeHandler(); //disable exception handler after excpetion, we dont want corrupt data structurs to crash the exception handler
::MessageBox(Notepad_plus_Window::gNppHWND, TEXT("Notepad++ will attempt to save any unsaved data. However, dataloss is very likely."), TEXT("Recovery initiating"), MB_OK | MB_ICONINFORMATION); ::MessageBox(Notepad_plus_Window::gNppHWND, L"Notepad++ will attempt to save any unsaved data. However, dataloss is very likely.", L"Recovery initiating", MB_OK | MB_ICONINFORMATION);
TCHAR tmpDir[1024]; wchar_t tmpDir[1024];
GetTempPath(1024, tmpDir); GetTempPath(1024, tmpDir);
std::wstring emergencySavedDir = tmpDir; std::wstring emergencySavedDir = tmpDir;
emergencySavedDir += TEXT("\\Notepad++ RECOV"); emergencySavedDir += L"\\Notepad++ RECOV";
bool res = notepad_plus_plus.emergency(emergencySavedDir); bool res = notepad_plus_plus.emergency(emergencySavedDir);
if (res) if (res)
{ {
std::wstring displayText = TEXT("Notepad++ was able to successfully recover some unsaved documents, or nothing to be saved could be found.\r\nYou can find the results at :\r\n"); std::wstring displayText = L"Notepad++ was able to successfully recover some unsaved documents, or nothing to be saved could be found.\r\nYou can find the results at :\r\n";
displayText += emergencySavedDir; displayText += emergencySavedDir;
::MessageBox(Notepad_plus_Window::gNppHWND, displayText.c_str(), TEXT("Recovery success"), MB_OK | MB_ICONINFORMATION); ::MessageBox(Notepad_plus_Window::gNppHWND, displayText.c_str(), L"Recovery success", MB_OK | MB_ICONINFORMATION);
} }
else else
::MessageBox(Notepad_plus_Window::gNppHWND, TEXT("Unfortunatly, Notepad++ was not able to save your work. We are sorry for any lost data."), TEXT("Recovery failure"), MB_OK | MB_ICONERROR); ::MessageBox(Notepad_plus_Window::gNppHWND, L"Unfortunatly, Notepad++ was not able to save your work. We are sorry for any lost data.", L"Recovery failure", MB_OK | MB_ICONERROR);
} }
// Looks for -z arguments and strips command line arguments following those, if any // Looks for -z arguments and strips command line arguments following those, if any
@ -359,7 +359,7 @@ void stripIgnoredParams(ParamVector & params)
{ {
for (auto it = params.begin(); it != params.end(); ) for (auto it = params.begin(); it != params.end(); )
{ {
if (lstrcmp(it->c_str(), TEXT("-z")) == 0) if (lstrcmp(it->c_str(), L"-z") == 0)
{ {
auto nextIt = std::next(it); auto nextIt = std::next(it);
if ( nextIt != params.end() ) if ( nextIt != params.end() )
@ -387,11 +387,11 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
bool TheFirstOne = true; bool TheFirstOne = true;
::SetLastError(NO_ERROR); ::SetLastError(NO_ERROR);
::CreateMutex(NULL, false, TEXT("nppInstance")); ::CreateMutex(NULL, false, L"nppInstance");
if (::GetLastError() == ERROR_ALREADY_EXISTS) if (::GetLastError() == ERROR_ALREADY_EXISTS)
TheFirstOne = false; TheFirstOne = false;
std::wstring cmdLineString = pCmdLine ? pCmdLine : _T(""); std::wstring cmdLineString = pCmdLine ? pCmdLine : L"";
ParamVector params; ParamVector params;
parseCommandLine(pCmdLine, params); parseCommandLine(pCmdLine, params);
@ -490,9 +490,9 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
} }
if (showHelp) if (showHelp)
::MessageBox(NULL, COMMAND_ARG_HELP, TEXT("Notepad++ Command Argument Help"), MB_OK); ::MessageBox(NULL, COMMAND_ARG_HELP, L"Notepad++ Command Argument Help", MB_OK);
if (cmdLineParams._localizationPath != TEXT("")) if (cmdLineParams._localizationPath != L"")
{ {
// setStartWithLocFileName() should be called before parameters are loaded // setStartWithLocFileName() should be called before parameters are loaded
nppParameters.setStartWithLocFileName(cmdLineParams._localizationPath); nppParameters.setStartWithLocFileName(cmdLineParams._localizationPath);
@ -536,20 +536,20 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
cmdLineParams._isNoSession = true; cmdLineParams._isNoSession = true;
} }
std::wstring quotFileName = TEXT(""); std::wstring quotFileName = L"";
// tell the running instance the FULL path to the new files to load // tell the running instance the FULL path to the new files to load
size_t nbFilesToOpen = params.size(); size_t nbFilesToOpen = params.size();
for (size_t i = 0; i < nbFilesToOpen; ++i) for (size_t i = 0; i < nbFilesToOpen; ++i)
{ {
const TCHAR * currentFile = params.at(i).c_str(); const wchar_t * currentFile = params.at(i).c_str();
if (currentFile[0]) if (currentFile[0])
{ {
//check if relative or full path. Relative paths dont have a colon for driveletter //check if relative or full path. Relative paths dont have a colon for driveletter
quotFileName += TEXT("\""); quotFileName += L"\"";
quotFileName += relativeFilePathToFullFilePath(currentFile); quotFileName += relativeFilePathToFullFilePath(currentFile);
quotFileName += TEXT("\" "); quotFileName += L"\" ";
} }
} }
@ -600,13 +600,13 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
COPYDATASTRUCT cmdLineData{}; COPYDATASTRUCT cmdLineData{};
cmdLineData.dwData = COPYDATA_FULL_CMDLINE; cmdLineData.dwData = COPYDATA_FULL_CMDLINE;
cmdLineData.lpData = (void*)cmdLineString.c_str(); cmdLineData.lpData = (void*)cmdLineString.c_str();
cmdLineData.cbData = static_cast<DWORD>((cmdLineString.length() + 1) * sizeof(TCHAR)); cmdLineData.cbData = static_cast<DWORD>((cmdLineString.length() + 1) * sizeof(wchar_t));
::SendMessage(hNotepad_plus, WM_COPYDATA, reinterpret_cast<WPARAM>(hInstance), reinterpret_cast<LPARAM>(&cmdLineData)); ::SendMessage(hNotepad_plus, WM_COPYDATA, reinterpret_cast<WPARAM>(hInstance), reinterpret_cast<LPARAM>(&cmdLineData));
COPYDATASTRUCT fileNamesData{}; COPYDATASTRUCT fileNamesData{};
fileNamesData.dwData = COPYDATA_FILENAMESW; fileNamesData.dwData = COPYDATA_FILENAMESW;
fileNamesData.lpData = (void *)quotFileName.c_str(); fileNamesData.lpData = (void *)quotFileName.c_str();
fileNamesData.cbData = static_cast<DWORD>((quotFileName.length() + 1) * sizeof(TCHAR)); fileNamesData.cbData = static_cast<DWORD>((quotFileName.length() + 1) * sizeof(wchar_t));
::SendMessage(hNotepad_plus, WM_COPYDATA, reinterpret_cast<WPARAM>(hInstance), reinterpret_cast<LPARAM>(&fileNamesData)); ::SendMessage(hNotepad_plus, WM_COPYDATA, reinterpret_cast<WPARAM>(hInstance), reinterpret_cast<LPARAM>(&fileNamesData));
} }
return 0; return 0;
@ -617,11 +617,11 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
Notepad_plus_Window & notepad_plus_plus = *upNotepadWindow.get(); Notepad_plus_Window & notepad_plus_plus = *upNotepadWindow.get();
std::wstring updaterDir = nppParameters.getNppPath(); std::wstring updaterDir = nppParameters.getNppPath();
updaterDir += TEXT("\\updater\\"); updaterDir += L"\\updater\\";
std::wstring updaterFullPath = updaterDir + TEXT("gup.exe"); std::wstring updaterFullPath = updaterDir + L"gup.exe";
std::wstring updaterParams = TEXT("-v"); std::wstring updaterParams = L"-v";
updaterParams += VERSION_INTERNAL_VALUE; updaterParams += VERSION_INTERNAL_VALUE;
bool isUpExist = nppGui._doesExistUpdater = (::PathFileExists(updaterFullPath.c_str()) == TRUE); bool isUpExist = nppGui._doesExistUpdater = (::PathFileExists(updaterFullPath.c_str()) == TRUE);
@ -650,11 +650,11 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
{ {
if (nppParameters.archType() == IMAGE_FILE_MACHINE_AMD64) if (nppParameters.archType() == IMAGE_FILE_MACHINE_AMD64)
{ {
updaterParams += TEXT(" -px64"); updaterParams += L" -px64";
} }
else if (nppParameters.archType() == IMAGE_FILE_MACHINE_ARM64) else if (nppParameters.archType() == IMAGE_FILE_MACHINE_ARM64)
{ {
updaterParams += TEXT(" -parm64"); updaterParams += L" -parm64";
} }
if (doUpdateNpp) if (doUpdateNpp)
@ -674,22 +674,22 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
if (doUpdatePluginList) if (doUpdatePluginList)
{ {
// Update Plugin List // Update Plugin List
std::wstring upPlParams = TEXT("-v"); std::wstring upPlParams = L"-v";
upPlParams += notepad_plus_plus.getPluginListVerStr(); upPlParams += notepad_plus_plus.getPluginListVerStr();
if (nppParameters.archType() == IMAGE_FILE_MACHINE_AMD64) if (nppParameters.archType() == IMAGE_FILE_MACHINE_AMD64)
{ {
upPlParams += TEXT(" -px64"); upPlParams += L" -px64";
} }
else if (nppParameters.archType() == IMAGE_FILE_MACHINE_ARM64) else if (nppParameters.archType() == IMAGE_FILE_MACHINE_ARM64)
{ {
upPlParams += TEXT(" -parm64"); upPlParams += L" -parm64";
} }
upPlParams += TEXT(" -upZip"); upPlParams += L" -upZip";
// overrided "InfoUrl" in gup.xml // overrided "InfoUrl" in gup.xml
upPlParams += TEXT(" https://notepad-plus-plus.org/update/pluginListDownloadUrl.php"); upPlParams += L" https://notepad-plus-plus.org/update/pluginListDownloadUrl.php";
// indicate the pluginList installation location // indicate the pluginList installation location
upPlParams += nppParameters.getPluginConfDir(); upPlParams += nppParameters.getPluginConfDir();
@ -731,10 +731,10 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
catch (int i) catch (int i)
{ {
wchar_t str[50] = L"God Damned Exception:"; wchar_t str[50] = L"God Damned Exception:";
TCHAR code[10]; wchar_t code[10];
wsprintf(code, TEXT("%d"), i); wsprintf(code, L"%d", i);
wcscat_s(str, code); wcscat_s(str, code);
::MessageBox(Notepad_plus_Window::gNppHWND, str, TEXT("Int Exception"), MB_OK); ::MessageBox(Notepad_plus_Window::gNppHWND, str, L"Int Exception", MB_OK);
doException(notepad_plus_plus); doException(notepad_plus_plus);
} }
catch (std::runtime_error & ex) catch (std::runtime_error & ex)
@ -744,10 +744,10 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE /*hPrevInstance
} }
catch (const Win32Exception & ex) catch (const Win32Exception & ex)
{ {
TCHAR message[1024]; //TODO: sane number wchar_t message[1024]; //TODO: sane number
wsprintf(message, TEXT("An exception occured. Notepad++ cannot recover and must be shut down.\r\nThe exception details are as follows:\r\n") wsprintf(message, L"An exception occured. Notepad++ cannot recover and must be shut down.\r\nThe exception details are as follows:\r\n"
TEXT("Code:\t0x%08X\r\nType:\t%S\r\nException address: 0x%p"), ex.code(), ex.what(), ex.where()); L"Code:\t0x%08X\r\nType:\t%S\r\nException address: 0x%p", ex.code(), ex.what(), ex.where());
::MessageBox(Notepad_plus_Window::gNppHWND, message, TEXT("Win32Exception"), MB_OK | MB_ICONERROR); ::MessageBox(Notepad_plus_Window::gNppHWND, message, L"Win32Exception", MB_OK | MB_ICONERROR);
mdump.writeDump(ex.info()); mdump.writeDump(ex.info());
doException(notepad_plus_plus); doException(notepad_plus_plus);
} }