mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ fixing crash: no good idea to make char array (char*) external to other compilation unit
(might be a 64-bit pointer problem or (higher probability) an order of initialization problem) found another (better) solution for that
This commit is contained in:
parent
accbcdcb2e
commit
fbf995a5c1
12
src/Edit.c
12
src/Edit.c
@ -68,8 +68,6 @@ extern int iSrcEncoding;
|
||||
extern int iWeakSrcEncoding;
|
||||
|
||||
extern BOOL bAccelWordNavigation;
|
||||
extern char* chExtendedWhiteSpaceChars;
|
||||
|
||||
|
||||
int g_DOSEncoding;
|
||||
|
||||
@ -268,11 +266,7 @@ HWND EditCreate(HWND hwndParent)
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_END + (0 << 16)),SCI_LINEENDWRAP);
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_HOME + (SCMOD_SHIFT << 16)),SCI_VCHOMEWRAPEXTEND);
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_END + (SCMOD_SHIFT << 16)),SCI_LINEENDWRAPEXTEND);
|
||||
|
||||
if (bAccelWordNavigation)
|
||||
SendMessage(hwnd, SCI_SETWHITESPACECHARS, 0, (LPARAM)chExtendedWhiteSpaceChars);
|
||||
else
|
||||
SendMessage(hwnd, SCI_SETCHARSDEFAULT, 0, 0);
|
||||
SendMessage(hwnd, SCI_SETCHARSDEFAULT, 0, 0);
|
||||
|
||||
// Init default values for printing
|
||||
EditPrintInit();
|
||||
@ -2855,9 +2849,9 @@ void EditModifyLines(HWND hwnd,LPCWSTR pwszPrefix,LPCWSTR pwszAppend)
|
||||
UINT mbcp = (UINT)SendMessage(hwnd, SCI_GETCODEPAGE, 0, 0);
|
||||
|
||||
if (lstrlen(pwszPrefix))
|
||||
WideCharToMultiByte(mbcp,0,pwszPrefix,-1,mszPrefix1,COUNTOF(mszPrefix1),NULL,NULL);
|
||||
WCHAR2MBCS(mbcp, pwszPrefix, mszPrefix1, COUNTOF(mszPrefix1));
|
||||
if (lstrlen(pwszAppend))
|
||||
WideCharToMultiByte(mbcp,0,pwszAppend,-1,mszAppend1,COUNTOF(mszAppend1),NULL,NULL);
|
||||
WCHAR2MBCS(mbcp, pwszAppend, mszAppend1, COUNTOF(mszAppend1));
|
||||
|
||||
if (SC_SEL_RECTANGLE != SendMessage(hwnd,SCI_GETSELECTIONMODE,0,0))
|
||||
{
|
||||
|
||||
@ -1608,21 +1608,21 @@ UINT GetDlgItemTextA2W(UINT uCP,HWND hDlg,int nIDDlgItem,LPSTR lpString,int nMax
|
||||
WCHAR wsz[1024] = L"";
|
||||
UINT uRet = GetDlgItemTextW(hDlg,nIDDlgItem,wsz,COUNTOF(wsz));
|
||||
ZeroMemory(lpString,nMaxCount);
|
||||
WCharToMBCS(uCP,wsz,lpString,nMaxCount-2);
|
||||
WCHAR2MBCS(uCP,wsz,lpString,nMaxCount-2);
|
||||
return uRet;
|
||||
}
|
||||
|
||||
UINT SetDlgItemTextA2W(UINT uCP,HWND hDlg,int nIDDlgItem,LPSTR lpString)
|
||||
{
|
||||
WCHAR wsz[1024] = L"";
|
||||
MBCSToWChar(uCP,lpString,wsz,COUNTOF(wsz));
|
||||
MBCS2WCHAR(uCP,lpString,wsz,COUNTOF(wsz));
|
||||
return SetDlgItemTextW(hDlg,nIDDlgItem,wsz);
|
||||
}
|
||||
|
||||
LRESULT ComboBox_AddStringA2W(UINT uCP,HWND hwnd,LPCSTR lpString)
|
||||
{
|
||||
WCHAR wsz[1024] = L"";
|
||||
MBCSToWChar(uCP,lpString,wsz,COUNTOF(wsz));
|
||||
MBCS2WCHAR(uCP,lpString,wsz,COUNTOF(wsz));
|
||||
return SendMessageW(hwnd,CB_ADDSTRING,0,(LPARAM)wsz);
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,14 @@
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define SMALL_BUFFER 128
|
||||
#define MIDSZ_BUFFER 256
|
||||
#define LARGE_BUFFER 512
|
||||
#define HUGE_BUFFER 1024
|
||||
|
||||
|
||||
#define UNUSED(expr) (void)(expr)
|
||||
#define SIZEOF(ar) sizeof(ar)
|
||||
#define COUNTOF(ar) ARRAYSIZE(ar) //#define COUNTOF(ar) (sizeof(ar)/sizeof(ar[0]))
|
||||
#define CSTRLEN(s) (COUNTOF(s)-1)
|
||||
|
||||
@ -142,8 +149,9 @@ int FormatNumberStr(LPWSTR);
|
||||
BOOL SetDlgItemIntEx(HWND,int,UINT);
|
||||
|
||||
|
||||
#define MBCSToWChar(c,a,w,i) MultiByteToWideChar(c,0,a,-1,w,i)
|
||||
#define WCharToMBCS(c,w,a,i) WideCharToMultiByte(c,0,w,-1,a,i,NULL,NULL)
|
||||
#define MBCS2WCHAR(c,a,w,i) MultiByteToWideChar((c),0,(a),-1,(w),(i))
|
||||
#define WCHAR2MBCS(c,w,a,i) WideCharToMultiByte((c),0,(w),-1,(a),(i),NULL,NULL)
|
||||
|
||||
|
||||
UINT GetDlgItemTextA2W(UINT,HWND,int,LPSTR,int);
|
||||
UINT SetDlgItemTextA2W(UINT,HWND,int,LPSTR);
|
||||
|
||||
@ -110,7 +110,7 @@ WCHAR tchToolbarBitmap[MAX_PATH] = { L'\0' };
|
||||
WCHAR tchToolbarBitmapHot[MAX_PATH] = { L'\0' };
|
||||
WCHAR tchToolbarBitmapDisabled[MAX_PATH] = { L'\0' };
|
||||
|
||||
char chExtendedWhiteSpaceChars[256] = { '\0' };
|
||||
char chExtendedWhiteSpaceChars[MIDSZ_BUFFER] = { '\0' };
|
||||
|
||||
int iPathNameFormat;
|
||||
BOOL fWordWrap;
|
||||
@ -702,6 +702,9 @@ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpCmdLine,int n
|
||||
SciCall_SetFontQuality(FontQuality[iSciFontQuality]);
|
||||
}
|
||||
|
||||
if (bAccelWordNavigation)
|
||||
PostMessage(hwndEdit,SCI_SETWHITESPACECHARS,0,(LPARAM)chExtendedWhiteSpaceChars);
|
||||
|
||||
hAccMain = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_MAINWND));
|
||||
hAccFindReplace = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_ACCFINDREPLACE));
|
||||
|
||||
@ -5906,11 +5909,11 @@ void LoadSettings()
|
||||
dwFileCheckInverval = IniSectionGetInt(pIniSection,L"FileCheckInverval",2000);
|
||||
dwAutoReloadTimeout = IniSectionGetInt(pIniSection,L"AutoReloadTimeout",2000);
|
||||
|
||||
WCHAR buffer[256];
|
||||
WCHAR buffer[MIDSZ_BUFFER];
|
||||
const WCHAR defextwsc[] = L".,;:|/-+$%&<>(){}[]=?#'*";
|
||||
IniSectionGetString(pIniSection, L"ExtendedWhiteSpaceChars", defextwsc, buffer, COUNTOF(buffer));
|
||||
if (!lstrlen(buffer)) lstrcpyn(buffer, defextwsc, COUNTOF(buffer));
|
||||
WideCharToMultiByte(CP_ACP, 0, buffer, -1, chExtendedWhiteSpaceChars, COUNTOF(chExtendedWhiteSpaceChars), NULL, NULL);
|
||||
WCHAR2MBCS(CP_ACP,buffer,chExtendedWhiteSpaceChars,COUNTOF(chExtendedWhiteSpaceChars));
|
||||
|
||||
|
||||
LoadIniSection(L"Toolbar Images",pIniSection,cchIniSection);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user