mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ fix: using process heap allocation instead of global memory allocation method (according to MSDN guidelines)
This commit is contained in:
parent
8efcfbdb1a
commit
8b9e8a7d13
200
src/Edit.c
200
src/Edit.c
@ -317,14 +317,14 @@ BOOL EditConvertText(HWND hwnd, int encSource, int encDest, BOOL bSetSavePoint)
|
||||
else {
|
||||
|
||||
const DocPos chBufSize = length * 5 + 2;
|
||||
char* pchText = GlobalAlloc(GPTR,chBufSize);
|
||||
char* pchText = AllocMem(chBufSize,HEAP_ZERO_MEMORY);
|
||||
|
||||
struct Sci_TextRange tr = { { 0, -1 }, NULL };
|
||||
tr.lpstrText = pchText;
|
||||
SendMessage(hwnd,SCI_GETTEXTRANGE,0,(LPARAM)&tr);
|
||||
|
||||
const DocPos wchBufSize = length * 3 + 2;
|
||||
WCHAR* pwchText = GlobalAlloc(GPTR,wchBufSize);
|
||||
WCHAR* pwchText = AllocMem(wchBufSize, HEAP_ZERO_MEMORY);
|
||||
|
||||
// MultiBytes(Sci) -> WideChar(destination) -> Sci(MultiByte)
|
||||
const UINT cpDst = Encoding_GetCodePage(encDest);
|
||||
@ -350,8 +350,8 @@ BOOL EditConvertText(HWND hwnd, int encSource, int encDest, BOOL bSetSavePoint)
|
||||
SendMessage(hwnd,SCI_GOTOPOS,0,0);
|
||||
SendMessage(hwnd,SCI_CHOOSECARETX,0,0);
|
||||
|
||||
GlobalFree(pchText);
|
||||
GlobalFree(pwchText);
|
||||
FreeMem(pchText);
|
||||
FreeMem(pwchText);
|
||||
|
||||
}
|
||||
return(TRUE);
|
||||
@ -942,7 +942,7 @@ BOOL EditLoadFile(
|
||||
}
|
||||
}
|
||||
|
||||
char* lpData = GlobalAlloc(GPTR,dwBufSize);
|
||||
char* lpData = AllocMem(dwBufSize, HEAP_ZERO_MEMORY);
|
||||
|
||||
dwLastIOError = GetLastError();
|
||||
if (!lpData)
|
||||
@ -956,12 +956,12 @@ BOOL EditLoadFile(
|
||||
}
|
||||
|
||||
DWORD cbData = 0L;
|
||||
BOOL bReadSuccess = ReadAndDecryptFile(hwnd, hFile, (DWORD)GlobalSize(lpData) - 2, &lpData, &cbData);
|
||||
BOOL bReadSuccess = ReadAndDecryptFile(hwnd, hFile, dwBufSize - 2, &lpData, &cbData);
|
||||
dwLastIOError = GetLastError();
|
||||
CloseHandle(hFile);
|
||||
|
||||
if (!bReadSuccess) {
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
Encoding_SrcCmdLn(CPI_NONE);
|
||||
Encoding_SrcWeak(CPI_NONE);
|
||||
return FALSE;
|
||||
@ -1011,7 +1011,7 @@ BOOL EditLoadFile(
|
||||
|
||||
EditSetNewText(hwnd,"",0);
|
||||
SendMessage(hwnd,SCI_SETEOLMODE,iLineEndings[g_iDefaultEOLMode],0);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
// === UNICODE ===
|
||||
else if (!bSkipUTFDetection && //TODO: use Encoding_IsUNICODE(iAnalyzedEncoding) here ???
|
||||
@ -1042,29 +1042,29 @@ BOOL EditLoadFile(
|
||||
*iEncoding = CPI_UNICODE;
|
||||
}
|
||||
|
||||
lpDataUTF8 = GlobalAlloc(GPTR,(cbData * 3) + 2);
|
||||
lpDataUTF8 = AllocMem((cbData * 3) + 2, HEAP_ZERO_MEMORY);
|
||||
|
||||
DWORD convCnt = (DWORD)WideCharToMultiByte(Encoding_SciCP,0,(bBOM) ? (LPWSTR)lpData + 1 : (LPWSTR)lpData,
|
||||
(bBOM) ? (cbData)/sizeof(WCHAR) : cbData/sizeof(WCHAR) + 1,lpDataUTF8,(int)GlobalSize(lpDataUTF8),NULL,NULL);
|
||||
(bBOM) ? (cbData)/sizeof(WCHAR) : cbData/sizeof(WCHAR) + 1,lpDataUTF8,(int)SizeOfMem(lpDataUTF8),NULL,NULL);
|
||||
|
||||
if (convCnt == 0) {
|
||||
if (pbUnicodeErr)
|
||||
*pbUnicodeErr = TRUE;
|
||||
convCnt = (DWORD)WideCharToMultiByte(CP_ACP,0,(bBOM) ? (LPWSTR)lpData + 1 : (LPWSTR)lpData,
|
||||
(-1),lpDataUTF8,(int)GlobalSize(lpDataUTF8),NULL,NULL);
|
||||
(-1),lpDataUTF8,(int)SizeOfMem(lpDataUTF8),NULL,NULL);
|
||||
}
|
||||
|
||||
if (convCnt != 0) {
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
EditSetNewText(hwnd,"",0);
|
||||
FileVars_Init(lpDataUTF8,convCnt - 1,&fvCurFile);
|
||||
EditSetNewText(hwnd,lpDataUTF8,convCnt - 1);
|
||||
*iEOLMode = EditDetectEOLMode(hwnd,lpDataUTF8,convCnt - 1);
|
||||
GlobalFree(lpDataUTF8);
|
||||
FreeMem(lpDataUTF8);
|
||||
}
|
||||
else {
|
||||
GlobalFree(lpDataUTF8);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpDataUTF8);
|
||||
FreeMem(lpData);
|
||||
Encoding_SrcCmdLn(CPI_NONE);
|
||||
Encoding_SrcWeak(CPI_NONE);
|
||||
return FALSE;
|
||||
@ -1097,7 +1097,7 @@ BOOL EditLoadFile(
|
||||
*iEncoding = CPI_UTF8;
|
||||
*iEOLMode = EditDetectEOLMode(hwnd,lpData,cbData);
|
||||
}
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
|
||||
else { // === ALL OTHER ===
|
||||
@ -1120,32 +1120,32 @@ BOOL EditLoadFile(
|
||||
|
||||
UINT uCodePage = Encoding_GetCodePage(*iEncoding);
|
||||
|
||||
LPWSTR lpDataWide = GlobalAlloc(GPTR,cbData * 2 + 16);
|
||||
int cbDataWide = MultiByteToWideChar(uCodePage,0,lpData,cbData,lpDataWide,(int)GlobalSize(lpDataWide)/sizeof(WCHAR));
|
||||
LPWSTR lpDataWide = AllocMem(cbData * 2 + 16, HEAP_ZERO_MEMORY);
|
||||
int cbDataWide = MultiByteToWideChar(uCodePage,0,lpData,cbData,lpDataWide,(int)SizeOfMem(lpDataWide)/sizeof(WCHAR));
|
||||
if (cbDataWide != 0)
|
||||
{
|
||||
GlobalFree(lpData);
|
||||
lpData = GlobalAlloc(GPTR,cbDataWide * 3 + 16);
|
||||
FreeMem(lpData);
|
||||
lpData = AllocMem(cbDataWide * 3 + 16, HEAP_ZERO_MEMORY);
|
||||
|
||||
cbData = WideCharToMultiByte(Encoding_SciCP,0,lpDataWide,cbDataWide,lpData,(int)GlobalSize(lpData),NULL,NULL);
|
||||
cbData = WideCharToMultiByte(Encoding_SciCP,0,lpDataWide,cbDataWide,lpData,(int)SizeOfMem(lpData),NULL,NULL);
|
||||
if (cbData != 0) {
|
||||
GlobalFree(lpDataWide);
|
||||
FreeMem(lpDataWide);
|
||||
EditSetNewText(hwnd,"",0);
|
||||
EditSetNewText(hwnd,lpData,cbData);
|
||||
*iEOLMode = EditDetectEOLMode(hwnd,lpData,cbData);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
else {
|
||||
GlobalFree(lpDataWide);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpDataWide);
|
||||
FreeMem(lpData);
|
||||
Encoding_SrcCmdLn(CPI_NONE);
|
||||
Encoding_SrcWeak(CPI_NONE);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
GlobalFree(lpDataWide);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpDataWide);
|
||||
FreeMem(lpData);
|
||||
Encoding_SrcCmdLn(CPI_NONE);
|
||||
Encoding_SrcWeak(CPI_NONE);
|
||||
return FALSE;
|
||||
@ -1156,7 +1156,7 @@ BOOL EditLoadFile(
|
||||
EditSetNewText(hwnd,"",0);
|
||||
EditSetNewText(hwnd,lpData,cbData);
|
||||
*iEOLMode = EditDetectEOLMode(hwnd,lpData,cbData);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1231,8 +1231,8 @@ BOOL EditSaveFile(
|
||||
|
||||
// get text
|
||||
cbData = (DWORD)SciCall_GetTextLength();
|
||||
lpData = GlobalAlloc(GPTR, cbData + 4); //fix: +bom
|
||||
SendMessage(hwnd,SCI_GETTEXT,GlobalSize(lpData),(LPARAM)lpData);
|
||||
lpData = AllocMem(cbData + 4, HEAP_ZERO_MEMORY); //fix: +bom
|
||||
SendMessage(hwnd,SCI_GETTEXT,SizeOfMem(lpData),(LPARAM)lpData);
|
||||
|
||||
if (cbData == 0) {
|
||||
bWriteSuccess = SetEndOfFile(hFile);
|
||||
@ -1269,22 +1269,22 @@ BOOL EditSaveFile(
|
||||
{
|
||||
SetEndOfFile(hFile);
|
||||
|
||||
LPWSTR lpDataWide = GlobalAlloc(GPTR, cbData * 2 + 16);
|
||||
LPWSTR lpDataWide = AllocMem(cbData * 2 + 16, HEAP_ZERO_MEMORY);
|
||||
int bomoffset = 0;
|
||||
if (Encoding_IsUNICODE_BOM(iEncoding)) {
|
||||
const char* bom = "\xFF\xFE";
|
||||
CopyMemory((char*)lpDataWide, bom, 2);
|
||||
bomoffset = 1;
|
||||
}
|
||||
int cbDataWide = bomoffset + MultiByteToWideChar(Encoding_SciCP, 0, lpData, cbData, &lpDataWide[bomoffset], (int)GlobalSize(lpDataWide) / sizeof(WCHAR) - bomoffset);
|
||||
int cbDataWide = bomoffset + MultiByteToWideChar(Encoding_SciCP, 0, lpData, cbData, &lpDataWide[bomoffset], (int)SizeOfMem(lpDataWide) / sizeof(WCHAR) - bomoffset);
|
||||
if (Encoding_IsUNICODE_REVERSE(iEncoding)) {
|
||||
_swab((char*)lpDataWide, (char*)lpDataWide, cbDataWide * sizeof(WCHAR));
|
||||
}
|
||||
bWriteSuccess = EncryptAndWriteFile(hwnd, hFile, (BYTE*)lpDataWide, cbDataWide * sizeof(WCHAR), &dwBytesWritten);
|
||||
dwLastIOError = GetLastError();
|
||||
|
||||
GlobalFree(lpDataWide);
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpDataWide);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
|
||||
else if (Encoding_IsUTF8(iEncoding))
|
||||
@ -1302,7 +1302,7 @@ BOOL EditSaveFile(
|
||||
bWriteSuccess = EncryptAndWriteFile(hwnd, hFile, (BYTE*)lpData, cbData, &dwBytesWritten);
|
||||
dwLastIOError = GetLastError();
|
||||
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
|
||||
else if (Encoding_IsEXTERNAL_8BIT(iEncoding)) {
|
||||
@ -1310,23 +1310,23 @@ BOOL EditSaveFile(
|
||||
BOOL bCancelDataLoss = FALSE;
|
||||
UINT uCodePage = Encoding_GetCodePage(iEncoding);
|
||||
|
||||
LPWSTR lpDataWide = GlobalAlloc(GPTR,cbData * 2 + 16);
|
||||
int cbDataWide = MultiByteToWideChar(Encoding_SciCP,0,lpData,cbData,lpDataWide,(int)GlobalSize(lpDataWide)/sizeof(WCHAR));
|
||||
LPWSTR lpDataWide = AllocMem(cbData * 2 + 16, HEAP_ZERO_MEMORY);
|
||||
int cbDataWide = MultiByteToWideChar(Encoding_SciCP,0,lpData,cbData,lpDataWide,(int)SizeOfMem(lpDataWide)/sizeof(WCHAR));
|
||||
|
||||
if (Encoding_IsMBCS(iEncoding)) {
|
||||
GlobalFree(lpData);
|
||||
lpData = GlobalAlloc(GPTR, GlobalSize(lpDataWide) * 2); // need more space
|
||||
cbData = WideCharToMultiByte(uCodePage, 0, lpDataWide, cbDataWide, lpData, (int)GlobalSize(lpData), NULL, NULL);
|
||||
FreeMem(lpData);
|
||||
lpData = AllocMem(SizeOfMem(lpDataWide) * 2, HEAP_ZERO_MEMORY); // need more space
|
||||
cbData = WideCharToMultiByte(uCodePage, 0, lpDataWide, cbDataWide, lpData, (int)SizeOfMem(lpData), NULL, NULL);
|
||||
}
|
||||
else {
|
||||
ZeroMemory(lpData, GlobalSize(lpData));
|
||||
cbData = WideCharToMultiByte(uCodePage,WC_NO_BEST_FIT_CHARS,lpDataWide,cbDataWide,lpData,(int)GlobalSize(lpData),NULL,&bCancelDataLoss);
|
||||
ZeroMemory(lpData, SizeOfMem(lpData));
|
||||
cbData = WideCharToMultiByte(uCodePage,WC_NO_BEST_FIT_CHARS,lpDataWide,cbDataWide,lpData,(int)SizeOfMem(lpData),NULL,&bCancelDataLoss);
|
||||
if (!bCancelDataLoss) {
|
||||
cbData = WideCharToMultiByte(uCodePage,0,lpDataWide,cbDataWide,lpData,(int)GlobalSize(lpData),NULL,NULL);
|
||||
cbData = WideCharToMultiByte(uCodePage,0,lpDataWide,cbDataWide,lpData,(int)SizeOfMem(lpData),NULL,NULL);
|
||||
bCancelDataLoss = FALSE;
|
||||
}
|
||||
}
|
||||
GlobalFree(lpDataWide);
|
||||
FreeMem(lpDataWide);
|
||||
|
||||
if (!bCancelDataLoss || InfoBox(MBOKCANCEL,L"MsgConv3",IDS_ERR_UNICODE2) == IDOK) {
|
||||
SetEndOfFile(hFile);
|
||||
@ -1338,14 +1338,14 @@ BOOL EditSaveFile(
|
||||
*pbCancelDataLoss = TRUE;
|
||||
}
|
||||
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
|
||||
else {
|
||||
SetEndOfFile(hFile);
|
||||
bWriteSuccess = EncryptAndWriteFile(hwnd, hFile, (BYTE*)lpData, cbData, &dwBytesWritten);
|
||||
dwLastIOError = GetLastError();
|
||||
GlobalFree(lpData);
|
||||
FreeMem(lpData);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1383,12 +1383,12 @@ void EditInvertCase(HWND hwnd)
|
||||
const DocPos iSelEnd = SciCall_GetSelectionEnd();
|
||||
const DocPos iSelLength = SciCall_GetSelText(NULL);
|
||||
|
||||
char* pszText = GlobalAlloc(GPTR,iSelLength);
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR,(iSelLength*sizeof(WCHAR)));
|
||||
char* pszText = AllocMem(iSelLength, HEAP_ZERO_MEMORY);
|
||||
LPWSTR pszTextW = AllocMem((iSelLength*sizeof(WCHAR)), HEAP_ZERO_MEMORY);
|
||||
|
||||
if (pszText == NULL || pszTextW == NULL) {
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
SciCall_GetSelText(pszText);
|
||||
@ -1409,15 +1409,15 @@ void EditInvertCase(HWND hwnd)
|
||||
|
||||
if (bChanged) {
|
||||
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)SizeOfMem(pszText),NULL,NULL);
|
||||
|
||||
SciCall_Clear();
|
||||
SciCall_AddText((iSelEnd - iSelStart), pszText);
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -1443,12 +1443,12 @@ void EditTitleCase(HWND hwnd)
|
||||
const DocPos iSelEnd = SciCall_GetSelectionEnd();
|
||||
const DocPos iSelLength = SciCall_GetSelText(NULL);
|
||||
|
||||
char* pszText = GlobalAlloc(GPTR,iSelLength);
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR,(iSelLength*sizeof(WCHAR)));
|
||||
char* pszText = AllocMem(iSelLength, HEAP_ZERO_MEMORY);
|
||||
LPWSTR pszTextW = AllocMem((iSelLength*sizeof(WCHAR)), HEAP_ZERO_MEMORY);
|
||||
|
||||
if (pszText == NULL || pszTextW == NULL) {
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
SciCall_GetSelText(pszText);
|
||||
@ -1456,7 +1456,7 @@ void EditTitleCase(HWND hwnd)
|
||||
int cchTextW = MultiByteToWideChar(Encoding_SciCP,0,pszText,(int)(iSelLength-1),pszTextW,(int)iSelLength);
|
||||
|
||||
BOOL bChanged = FALSE;
|
||||
LPWSTR pszMappedW = LocalAlloc(LPTR,GlobalSize(pszTextW));
|
||||
LPWSTR pszMappedW = LocalAlloc(LPTR,SizeOfMem(pszTextW));
|
||||
// first make lower case, before applying TitleCase
|
||||
if (LCMapString(LOCALE_SYSTEM_DEFAULT,(LCMAP_LINGUISTIC_CASING | LCMAP_LOWERCASE), pszTextW,cchTextW,pszMappedW,(int)iSelLength))
|
||||
{
|
||||
@ -1468,15 +1468,15 @@ void EditTitleCase(HWND hwnd)
|
||||
|
||||
if (bChanged) {
|
||||
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)SizeOfMem(pszText),NULL,NULL);
|
||||
|
||||
SciCall_Clear();
|
||||
SciCall_AddText((iSelEnd - iSelStart), pszText);
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -1502,12 +1502,12 @@ void EditSentenceCase(HWND hwnd)
|
||||
const DocPos iSelEnd = SciCall_GetSelectionEnd();
|
||||
const DocPos iSelLength = SciCall_GetSelText(NULL);
|
||||
|
||||
char* pszText = GlobalAlloc(GPTR,iSelLength);
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR,(iSelLength*sizeof(WCHAR)));
|
||||
char* pszText = AllocMem(iSelLength, HEAP_ZERO_MEMORY);
|
||||
LPWSTR pszTextW = AllocMem((iSelLength*sizeof(WCHAR)), HEAP_ZERO_MEMORY);
|
||||
|
||||
if (pszText == NULL || pszTextW == NULL) {
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
SciCall_GetSelText(pszText);
|
||||
@ -1541,15 +1541,15 @@ void EditSentenceCase(HWND hwnd)
|
||||
|
||||
if (bChanged) {
|
||||
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)GlobalSize(pszText),NULL,NULL);
|
||||
WideCharToMultiByte(Encoding_SciCP,0,pszTextW,cchTextW,pszText,(int)SizeOfMem(pszText),NULL,NULL);
|
||||
|
||||
SciCall_Clear();
|
||||
SciCall_AddText((iSelEnd - iSelStart), pszText);
|
||||
SciCall_SetSel(iAnchorPos, iCurPos);
|
||||
}
|
||||
|
||||
GlobalFree(pszText);
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszText);
|
||||
FreeMem(pszTextW);
|
||||
}
|
||||
else
|
||||
MsgBox(MBWARN,IDS_SELRECT);
|
||||
@ -2033,14 +2033,14 @@ void EditTabsToSpaces(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
|
||||
const char* pszText = SciCall_GetRangePointer(iSelStart, iSelCount);
|
||||
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR, (iSelCount + 1) * sizeof(WCHAR));
|
||||
LPWSTR pszTextW = AllocMem((iSelCount + 1) * sizeof(WCHAR), HEAP_ZERO_MEMORY);
|
||||
if (pszTextW == NULL) { return; }
|
||||
|
||||
int cchTextW = MultiByteToWideChar(Encoding_SciCP,0,pszText,(int)iSelCount,pszTextW,(int)iSelCount+1);
|
||||
|
||||
LPWSTR pszConvW = GlobalAlloc(GPTR,cchTextW*sizeof(WCHAR)*nTabWidth+2);
|
||||
LPWSTR pszConvW = AllocMem(cchTextW*sizeof(WCHAR)*nTabWidth+2, HEAP_ZERO_MEMORY);
|
||||
if (pszConvW == NULL) {
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2072,13 +2072,12 @@ void EditTabsToSpaces(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
}
|
||||
}
|
||||
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
|
||||
if (bModified) {
|
||||
char* pszText2 = GlobalAlloc(GPTR,cchConvW*3);
|
||||
char* pszText2 = AllocMem(cchConvW*3, HEAP_ZERO_MEMORY);
|
||||
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP,0,pszConvW,cchConvW,pszText2,(int)GlobalSize(pszText2),NULL,NULL);
|
||||
GlobalFree(pszConvW);
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP,0,pszConvW,cchConvW,pszText2,(int)SizeOfMem(pszText2),NULL,NULL);
|
||||
|
||||
if (iCurPos < iAnchorPos) {
|
||||
iCurPos = iSelStart;
|
||||
@ -2096,10 +2095,10 @@ void EditTabsToSpaces(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
|
||||
EditSelectEx(hwnd, iAnchorPos, iCurPos);
|
||||
|
||||
GlobalFree(pszText2);
|
||||
FreeMem(pszText2);
|
||||
}
|
||||
else
|
||||
GlobalFree(pszConvW);
|
||||
|
||||
FreeMem(pszConvW);
|
||||
}
|
||||
|
||||
|
||||
@ -2127,7 +2126,7 @@ void EditSpacesToTabs(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
|
||||
const char* pszText = SciCall_GetRangePointer(iSelStart, iSelCount);
|
||||
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR, (iSelCount + 1) * sizeof(WCHAR));
|
||||
LPWSTR pszTextW = AllocMem((iSelCount + 1) * sizeof(WCHAR), HEAP_ZERO_MEMORY);
|
||||
if (pszTextW == NULL)
|
||||
{
|
||||
return;
|
||||
@ -2135,9 +2134,9 @@ void EditSpacesToTabs(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
|
||||
int cchTextW = MultiByteToWideChar(Encoding_SciCP,0,pszText,(int)iSelCount,pszTextW,(int)iSelCount+1);
|
||||
|
||||
LPWSTR pszConvW = GlobalAlloc(GPTR,cchTextW*sizeof(WCHAR)+2);
|
||||
LPWSTR pszConvW = AllocMem(cchTextW*sizeof(WCHAR)+2, HEAP_ZERO_MEMORY);
|
||||
if (pszConvW == NULL) {
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2186,13 +2185,12 @@ void EditSpacesToTabs(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
pszConvW[cchConvW++] = space[t];
|
||||
}
|
||||
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
|
||||
if (bModified || cchConvW != cchTextW) {
|
||||
char* pszText2 = GlobalAlloc(GPTR,cchConvW * 3);
|
||||
char* pszText2 = AllocMem(cchConvW * 3, HEAP_ZERO_MEMORY);
|
||||
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP,0,pszConvW,cchConvW,pszText2,(int)GlobalSize(pszText2),NULL,NULL);
|
||||
GlobalFree(pszConvW);
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP,0,pszConvW,cchConvW,pszText2,(int)SizeOfMem(pszText2),NULL,NULL);
|
||||
|
||||
if (iAnchorPos > iCurPos) {
|
||||
iCurPos = iSelStart;
|
||||
@ -2210,10 +2208,10 @@ void EditSpacesToTabs(HWND hwnd,int nTabWidth,BOOL bOnlyIndentingWS)
|
||||
|
||||
EditSelectEx(hwnd, iAnchorPos, iCurPos);
|
||||
|
||||
GlobalFree(pszText2);
|
||||
FreeMem(pszText2);
|
||||
}
|
||||
else
|
||||
GlobalFree(pszConvW);
|
||||
|
||||
FreeMem(pszConvW);
|
||||
}
|
||||
|
||||
|
||||
@ -3687,16 +3685,16 @@ void EditWrapToColumn(HWND hwnd,int nColumn/*,int nTabWidth*/)
|
||||
|
||||
char* pszText = (char*)SciCall_GetRangePointer(iSelStart, iSelCount);
|
||||
|
||||
LPWSTR pszTextW = GlobalAlloc(GPTR,(iSelCount+2)*sizeof(WCHAR));
|
||||
LPWSTR pszTextW = AllocMem((iSelCount+2)*sizeof(WCHAR), HEAP_ZERO_MEMORY);
|
||||
if (pszTextW == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
int cchTextW = MultiByteToWideChar(Encoding_SciCP,0,pszText,(int)iSelCount,pszTextW,(int)(GlobalSize(pszTextW)/sizeof(WCHAR)));
|
||||
int cchTextW = MultiByteToWideChar(Encoding_SciCP,0,pszText,(int)iSelCount,pszTextW,(int)(SizeOfMem(pszTextW)/sizeof(WCHAR)));
|
||||
|
||||
LPWSTR pszConvW = GlobalAlloc(GPTR,cchTextW*sizeof(WCHAR)*3+2);
|
||||
LPWSTR pszConvW = AllocMem(cchTextW*sizeof(WCHAR)*3+2, HEAP_ZERO_MEMORY);
|
||||
if (pszConvW == NULL) {
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3778,14 +3776,14 @@ void EditWrapToColumn(HWND hwnd,int nColumn/*,int nTabWidth*/)
|
||||
}
|
||||
}
|
||||
}
|
||||
GlobalFree(pszTextW);
|
||||
FreeMem(pszTextW);
|
||||
|
||||
if (bModified)
|
||||
{
|
||||
pszText = GlobalAlloc(GPTR, cchConvW * 3);
|
||||
pszText = AllocMem(cchConvW * 3, HEAP_ZERO_MEMORY);
|
||||
if (pszText)
|
||||
{
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP, 0, pszConvW, cchConvW, pszText, (int)GlobalSize(pszText), NULL, NULL);
|
||||
int cchConvM = WideCharToMultiByte(Encoding_SciCP, 0, pszConvW, cchConvW, pszText, (int)SizeOfMem(pszText), NULL, NULL);
|
||||
|
||||
if (iCurPos < iAnchorPos) {
|
||||
iAnchorPos = iSelStart + cchConvM;
|
||||
@ -3803,12 +3801,12 @@ void EditWrapToColumn(HWND hwnd,int nColumn/*,int nTabWidth*/)
|
||||
SendMessage(hwnd, SCI_REPLACETARGET, (WPARAM)cchConvM, (LPARAM)pszText);
|
||||
EditLeaveTargetTransaction();
|
||||
|
||||
GlobalFree(pszText);
|
||||
FreeMem(pszText);
|
||||
|
||||
EditSelectEx(hwnd, iAnchorPos, iCurPos);
|
||||
}
|
||||
}
|
||||
GlobalFree(pszConvW);
|
||||
FreeMem(pszConvW);
|
||||
}
|
||||
|
||||
|
||||
@ -4353,7 +4351,7 @@ void EditGetExcerpt(HWND hwnd,LPWSTR lpszExcerpt,DWORD cchExcerpt)
|
||||
{
|
||||
tr.lpstrText = pszText;
|
||||
SendMessage(hwnd,SCI_GETTEXTRANGE,0,(LPARAM)&tr);
|
||||
MultiByteToWideChar(Encoding_SciCP,0,pszText,tr.chrg.cpMax - tr.chrg.cpMin,pszTextW,(int)GlobalSize(pszTextW)/sizeof(WCHAR));
|
||||
MultiByteToWideChar(Encoding_SciCP,0,pszText,tr.chrg.cpMax - tr.chrg.cpMin,pszTextW,(int)SizeOfMem(pszTextW)/sizeof(WCHAR));
|
||||
|
||||
for (WCHAR* p = pszTextW; *p && cch < COUNTOF(tch)-1; p++) {
|
||||
if (*p == L'\r' || *p == L'\n' || *p == L'\t' || *p == L' ') {
|
||||
@ -4846,7 +4844,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
|
||||
DocPos cchSelection = (DocPos)SendMessage(lpefr->hwnd, SCI_GETSELTEXT, 0, (LPARAM)NULL);
|
||||
if ((1 < cchSelection) && (cchSelection < FNDRPL_BUFFER)) {
|
||||
lpszSelection = GlobalAlloc(GPTR, cchSelection);
|
||||
lpszSelection = AllocMem(cchSelection, HEAP_ZERO_MEMORY);
|
||||
SendMessage(lpefr->hwnd, SCI_GETSELTEXT, 0, (LPARAM)lpszSelection);
|
||||
}
|
||||
else if (cchSelection <= 1) {
|
||||
@ -4857,7 +4855,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
if (pClip) {
|
||||
int len = lstrlenA(pClip);
|
||||
if (len > 0 && len < FNDRPL_BUFFER) {
|
||||
lpszSelection = GlobalAlloc(GPTR, len + 1);
|
||||
lpszSelection = AllocMem(len + 1, HEAP_ZERO_MEMORY);
|
||||
StringCchCopyNA(lpszSelection, len + 1, pClip, len);
|
||||
}
|
||||
LocalFree(pClip);
|
||||
@ -4876,7 +4874,7 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
|
||||
if (lpsz) *lpsz = '\0';
|
||||
|
||||
SetDlgItemTextMB2W(hwnd, IDC_FINDTEXT, lpszSelection);
|
||||
GlobalFree(lpszSelection);
|
||||
FreeMem(lpszSelection);
|
||||
}
|
||||
else {
|
||||
if (tchBuf[0] == L'\0') {
|
||||
|
||||
@ -813,8 +813,10 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
|
||||
}
|
||||
}
|
||||
}
|
||||
GlobalFree(lpFileArg); lpFileArg = NULL;
|
||||
|
||||
if (lpFileArg) {
|
||||
FreeMem(lpFileArg);
|
||||
lpFileArg = NULL;
|
||||
}
|
||||
if (bOpened) {
|
||||
if (flagChangeNotify == 1) {
|
||||
iFileWatchingMode = 0;
|
||||
@ -913,7 +915,8 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
|
||||
EditEnsureSelectionVisible(g_hwndEdit);
|
||||
}
|
||||
}
|
||||
GlobalFree(lpMatchArg);
|
||||
LocalFree(lpMatchArg);
|
||||
lpMatchArg = NULL;
|
||||
}
|
||||
|
||||
// Check for Paste Board option -- after loading files
|
||||
@ -4826,7 +4829,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
MultiByteToWideCharStrg(Encoding_SciCP,mszSelection,wszSelection);
|
||||
|
||||
int cmdsz = (512 + COUNTOF(szCmdTemplate) + MAX_PATH + 32);
|
||||
LPWSTR lpszCommand = GlobalAlloc(GPTR,sizeof(WCHAR)*cmdsz);
|
||||
LPWSTR lpszCommand = AllocMem(sizeof(WCHAR)*cmdsz, HEAP_ZERO_MEMORY);
|
||||
StringCchPrintf(lpszCommand,cmdsz,szCmdTemplate,wszSelection);
|
||||
ExpandEnvironmentStringsEx(lpszCommand, cmdsz);
|
||||
|
||||
@ -4848,7 +4851,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
sei.nShow = SW_SHOWNORMAL;
|
||||
ShellExecuteEx(&sei);
|
||||
|
||||
GlobalFree(lpszCommand);
|
||||
FreeMem(lpszCommand);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5503,11 +5506,13 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
const DocPos iPrevLineLength = SciCall_LineLength(iCurLine - 1);
|
||||
char* pLineBuf = NULL;
|
||||
bool bAllocLnBuf = false;
|
||||
if (iPrevLineLength < FNDRPL_BUFFER) {
|
||||
pLineBuf = chLineBuffer;
|
||||
}
|
||||
else {
|
||||
pLineBuf = GlobalAlloc(GPTR, iPrevLineLength + 1);
|
||||
bAllocLnBuf = true;
|
||||
pLineBuf = AllocMem(iPrevLineLength + 1, HEAP_ZERO_MEMORY);
|
||||
}
|
||||
if (pLineBuf)
|
||||
{
|
||||
@ -5522,7 +5527,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
SendMessage(g_hwndEdit, SCI_ADDTEXT, lstrlenA(pLineBuf), (LPARAM)pLineBuf);
|
||||
SendMessage(g_hwndEdit, SCI_ENDUNDOACTION, 0, 0);
|
||||
}
|
||||
if (iPrevLineLength >= FNDRPL_BUFFER) { GlobalFree(pLineBuf); }
|
||||
if (bAllocLnBuf) { FreeMem(pLineBuf); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6630,7 +6635,7 @@ void ParseCommandLine()
|
||||
|
||||
if (ExtractFirstArgument(lp2,lp1,lp2,len)) {
|
||||
if (lpMatchArg)
|
||||
GlobalFree(lpMatchArg);
|
||||
LocalFree(lpMatchArg);
|
||||
lpMatchArg = StrDup(lp1);
|
||||
flagMatchText = 1;
|
||||
|
||||
@ -6731,10 +6736,11 @@ void ParseCommandLine()
|
||||
|
||||
cchiFileList = lstrlen(lpCmdLine) - lstrlen(lp3);
|
||||
|
||||
if (lpFileArg)
|
||||
GlobalFree(lpFileArg);
|
||||
|
||||
lpFileArg = GlobalAlloc(GPTR,sizeof(WCHAR)*FILE_ARG_BUF); // changed for ActivatePrevInst() needs
|
||||
if (lpFileArg) {
|
||||
FreeMem(lpFileArg);
|
||||
//lpFileArg = NULL;
|
||||
}
|
||||
lpFileArg = AllocMem(sizeof(WCHAR)*FILE_ARG_BUF, HEAP_ZERO_MEMORY); // changed for ActivatePrevInst() needs
|
||||
StringCchCopy(lpFileArg,FILE_ARG_BUF,lp3);
|
||||
|
||||
PathFixBackslashes(lpFileArg);
|
||||
@ -8208,7 +8214,7 @@ BOOL ActivatePrevInst()
|
||||
// lpFileArg is at least MAX_PATH+4 WCHARS
|
||||
WCHAR tchTmp[FILE_ARG_BUF] = { L'\0' };
|
||||
|
||||
ExpandEnvironmentStringsEx(lpFileArg,(DWORD)GlobalSize(lpFileArg)/sizeof(WCHAR));
|
||||
ExpandEnvironmentStringsEx(lpFileArg,(DWORD)SizeOfMem(lpFileArg)/sizeof(WCHAR));
|
||||
|
||||
if (PathIsRelative(lpFileArg)) {
|
||||
StringCchCopyN(tchTmp,COUNTOF(tchTmp),g_wchWorkingDirectory,COUNTOF(g_wchWorkingDirectory));
|
||||
@ -8238,9 +8244,6 @@ BOOL ActivatePrevInst()
|
||||
// Enabled
|
||||
if (IsWindowEnabled(hwnd))
|
||||
{
|
||||
LPnp3params params;
|
||||
DWORD cb = sizeof(np3params);
|
||||
|
||||
// Make sure the previous window won't pop up a change notification message
|
||||
//SendMessage(hwnd,WM_CHANGENOTIFYCLEAR,0,0);
|
||||
|
||||
@ -8254,10 +8257,11 @@ BOOL ActivatePrevInst()
|
||||
|
||||
SetForegroundWindow(hwnd);
|
||||
|
||||
DWORD cb = sizeof(np3params);
|
||||
if (lpSchemeArg)
|
||||
cb += (lstrlen(lpSchemeArg) + 1) * sizeof(WCHAR);
|
||||
|
||||
params = GlobalAlloc(GPTR,cb);
|
||||
LPnp3params params = AllocMem(cb, HEAP_ZERO_MEMORY);
|
||||
params->flagFileSpecified = FALSE;
|
||||
params->flagChangeNotify = 0;
|
||||
params->flagQuietCreate = FALSE;
|
||||
@ -8278,11 +8282,11 @@ BOOL ActivatePrevInst()
|
||||
params->flagTitleExcerpt = 0;
|
||||
|
||||
cds.dwData = DATA_NOTEPAD3_PARAMS;
|
||||
cds.cbData = (DWORD)GlobalSize(params);
|
||||
cds.cbData = (DWORD)SizeOfMem(params);
|
||||
cds.lpData = params;
|
||||
|
||||
SendMessage(hwnd,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds);
|
||||
GlobalFree(params);
|
||||
FreeMem(params);
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
@ -8328,11 +8332,8 @@ BOOL ActivatePrevInst()
|
||||
// Search working directory from second instance, first!
|
||||
// lpFileArg is at least MAX_PATH+4 WCHAR
|
||||
WCHAR tchTmp[FILE_ARG_BUF] = { L'\0' };
|
||||
LPnp3params params;
|
||||
DWORD cb = sizeof(np3params);
|
||||
int cchTitleExcerpt;
|
||||
|
||||
ExpandEnvironmentStringsEx(lpFileArg,(DWORD)GlobalSize(lpFileArg)/sizeof(WCHAR));
|
||||
ExpandEnvironmentStringsEx(lpFileArg,(DWORD)SizeOfMem(lpFileArg)/sizeof(WCHAR));
|
||||
|
||||
if (PathIsRelative(lpFileArg)) {
|
||||
StringCchCopyN(tchTmp,COUNTOF(tchTmp),g_wchWorkingDirectory,COUNTOF(g_wchWorkingDirectory));
|
||||
@ -8348,16 +8349,17 @@ BOOL ActivatePrevInst()
|
||||
else if (SearchPath(NULL,lpFileArg,NULL,COUNTOF(tchTmp),tchTmp,NULL))
|
||||
StringCchCopy(lpFileArg,FILE_ARG_BUF,tchTmp);
|
||||
|
||||
DWORD cb = sizeof(np3params);
|
||||
cb += (lstrlen(lpFileArg) + 1) * sizeof(WCHAR);
|
||||
|
||||
if (lpSchemeArg)
|
||||
cb += (lstrlen(lpSchemeArg) + 1) * sizeof(WCHAR);
|
||||
|
||||
cchTitleExcerpt = StringCchLenW(szTitleExcerpt,COUNTOF(szTitleExcerpt));
|
||||
int cchTitleExcerpt = StringCchLenW(szTitleExcerpt,COUNTOF(szTitleExcerpt));
|
||||
if (cchTitleExcerpt)
|
||||
cb += (cchTitleExcerpt + 1) * sizeof(WCHAR);
|
||||
|
||||
params = GlobalAlloc(GPTR,cb);
|
||||
LPnp3params params = AllocMem(cb, HEAP_ZERO_MEMORY);
|
||||
params->flagFileSpecified = TRUE;
|
||||
StringCchCopy(¶ms->wchData,lstrlen(lpFileArg)+1,lpFileArg);
|
||||
params->flagChangeNotify = flagChangeNotify;
|
||||
@ -8385,12 +8387,12 @@ BOOL ActivatePrevInst()
|
||||
params->flagTitleExcerpt = 0;
|
||||
|
||||
cds.dwData = DATA_NOTEPAD3_PARAMS;
|
||||
cds.cbData = (DWORD)GlobalSize(params);
|
||||
cds.cbData = (DWORD)SizeOfMem(params);
|
||||
cds.lpData = params;
|
||||
|
||||
SendMessage(hwnd,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds);
|
||||
GlobalFree(params); params = NULL;
|
||||
GlobalFree(lpFileArg); lpFileArg = NULL;
|
||||
FreeMem(params); params = NULL;
|
||||
FreeMem(lpFileArg); lpFileArg = NULL;
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
@ -8451,10 +8453,11 @@ BOOL RelaunchMultiInst() {
|
||||
|
||||
CreateProcess(NULL,lpCmdLineNew,NULL,NULL,FALSE,0,NULL,g_wchWorkingDirectory,&si,&pi);
|
||||
}
|
||||
|
||||
LocalFree(lpCmdLineNew);
|
||||
LocalFree(lp1);
|
||||
LocalFree(lp2);
|
||||
GlobalFree(lpFileArg); lpFileArg = NULL;
|
||||
FreeMem(lpFileArg); lpFileArg = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user