From 36b7abed328799b2d73de527dd01eca29a894fd1 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 19:33:14 +0200 Subject: [PATCH 1/6] + chg: CloseApp methods --- src/Notepad3.c | 75 +++++++++++++++++++++++++++++++------------------- src/Notepad3.h | 2 ++ 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/Notepad3.c b/src/Notepad3.c index 9618ca304..576586f9e 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -895,7 +895,6 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, } _InsertLanguageMenu(Globals.hMainMenu); - Style_InsertThemesMenu(Globals.hMainMenu); if (!InitApplication(Globals.hInstance)) @@ -909,6 +908,7 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _CleanUpResources(hwnd, true); return 1; } + DrawMenuBar(hwnd); #ifdef _EXTRA_DRAG_N_DROP_HANDLER_ DragAndDropInit(NULL); @@ -1189,6 +1189,7 @@ HWND InitInstance(HINSTANCE hInstance,LPCWSTR pszCmdLine,int nCmdShow) } SetMenu(Globals.hwndMain, Globals.hMainMenu); + DrawMenuBar(Globals.hwndMain); // Current file information -- moved in front of ShowWindow() FileLoad(true,true,false,Settings.SkipUnicodeDetection,Settings.SkipANSICodePageDetection,false,L""); @@ -1417,7 +1418,7 @@ HWND InitInstance(HINSTANCE hInstance,LPCWSTR pszCmdLine,int nCmdShow) } if (s_flagAppIsClosing || s_flagPrintFileAndLeave) { - PostMessage(Globals.hwndMain, WM_CLOSE, 0, 0); + CloseApplication(); } return(Globals.hwndMain); @@ -1450,6 +1451,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case WM_WINDOWPOSCHANGED: case WM_TIMER: case WM_KILLFOCUS: + case WM_ENTERIDLE: return DefWindowProc(hwnd, umsg, wParam, lParam); // never send @@ -1474,12 +1476,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case WM_CLOSE: s_flagAppIsClosing = true; - if (IsWindow(Globals.hwndDlgFindReplace)) { - PostMessage(Globals.hwndDlgFindReplace, WM_CLOSE, 0, 0); - } - if (IsWindow(Globals.hwndDlgCustomizeSchemes)) { - PostMessage(Globals.hwndDlgCustomizeSchemes, WM_CLOSE, 0, 0); - } + CloseNonModalDialogs(); if (FileSave(false, true, false, false, Flags.bPreserveFileModTime)) { DestroyWindow(hwnd); } @@ -2606,7 +2603,6 @@ LRESULT MsgThemeChanged(HWND hwnd, WPARAM wParam ,LPARAM lParam) Toolbar_GetButtons(Globals.hwndToolbar,IDT_FILE_NEW,Settings.ToolbarButtons,COUNTOF(Settings.ToolbarButtons)); CreateBars(hwnd,hInstance); - SendWMSize(hwnd, NULL); MarkAllOccurrences(0, true); @@ -3034,7 +3030,7 @@ LRESULT MsgTrayMessage(HWND hwnd, WPARAM wParam, LPARAM lParam) } else if (iCmd == IDM_TRAY_EXIT) { //ShowNotifyIcon(hwnd,false); - PostMessage(hwnd, WM_CLOSE, 0, 0); + CloseApplication(); } } break; @@ -3435,12 +3431,7 @@ static void _DynamicLanguageMenuCmd(int cmd) } if (!MUI_LanguageDLLs[iLngIdx].bIsActive) { - if (IsWindow(Globals.hwndDlgFindReplace)) { - PostMessage(Globals.hwndDlgFindReplace, WM_CLOSE, 0, 0); - } - if (IsWindow(Globals.hwndDlgCustomizeSchemes)) { - PostMessage(Globals.hwndDlgCustomizeSchemes, WM_CLOSE, 0, 0); - } + CloseNonModalDialogs(); StringCchCopyW(Settings2.PreferredLanguageLocaleName, COUNTOF(Settings2.PreferredLanguageLocaleName), MUI_LanguageDLLs[iLngIdx].szLocaleName); IniFileSetString(Globals.IniFile, L"Settings2", L"PreferredLanguageLocaleName", Settings2.PreferredLanguageLocaleName); @@ -3452,7 +3443,7 @@ static void _DynamicLanguageMenuCmd(int cmd) Globals.hMainMenu = LoadMenu(Globals.hLngResContainer, MAKEINTRESOURCE(IDR_MUI_MAINMENU)); if (!Globals.hMainMenu) { GetLastErrorToMsgBox(L"LoadMenu()", 0); - PostMessage(Globals.hwndMain, WM_CLOSE, 0, 0); + CloseApplication(); return; } @@ -3645,7 +3636,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) fioStatus.iEOLMode = SciCall_GetEOLMode(); if (DoElevatedRelaunch(&fioStatus)) { - PostMessage(Globals.hwndMain, WM_CLOSE, 0, 0); + CloseApplication(); } else { InfoBoxLng(MB_ICONWARNING, NULL, IDS_MUI_ERR_ELEVATED_RIGHTS); @@ -3792,7 +3783,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_EXIT: - PostMessage(hwnd,WM_CLOSE,0,0); + CloseApplication(); break; @@ -5587,7 +5578,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) SendMessage(hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0); } else if (Settings.EscFunction == 2) { - PostMessage(hwnd, WM_CLOSE, 0, 0); + CloseApplication(true); } else { if (!SciCall_IsSelectionEmpty()) { @@ -5600,9 +5591,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case CMD_SHIFTESC: - if (FileSave(true, false, false, false, Flags.bPreserveFileModTime)) { - PostMessage(hwnd, WM_CLOSE, 0, 0); - } + CloseApplication(); break; @@ -6267,7 +6256,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDT_FILE_EXIT: - PostMessage(hwnd,WM_CLOSE,0,0); + CloseApplication(); break; @@ -9799,7 +9788,7 @@ bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy, bool bP { // File or "Untitled" ... WCHAR tch[MAX_PATH] = { L'\0' }; - if (StringCchLenW(Globals.CurrentFile, COUNTOF(Globals.CurrentFile))) { + if (StrIsNotEmpty(Globals.CurrentFile)) { StringCchCopy(tch, COUNTOF(tch), Globals.CurrentFile); } else { @@ -9907,7 +9896,7 @@ bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy, bool bP if ((IDOK == answer) || (IDYES == answer)) { if (DoElevatedRelaunch(&fioStatus)) { - PostMessage(Globals.hwndMain, WM_CLOSE, 0, 0); + CloseApplication(); } else { s_flagAppIsClosing = false; @@ -10403,7 +10392,8 @@ void SnapToWinInfoPos(HWND hwnd, const WININFO* pWinInfo, SCREEN_MODE mode) if (GetDoAnimateMinimize()) { DrawAnimatedRects(hWindow, IDANI_CAPTION, &rcCurrent, &wndpl.rcNormalPosition); } SetWindowPlacement(hWindow, &wndpl); } - SetWindowPos(hWindow, (Settings.AlwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST), 0, 0, 0, 0, fPrevFlags); + SetWindowPos(hWindow, NULL, 0, 0, 0, 0, fPrevFlags); + SetWindowPos(hWindow, (Settings.AlwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); s_bPrevFullScreenFlag = false; } else { // full screen mode @@ -10421,7 +10411,8 @@ void SnapToWinInfoPos(HWND hwnd, const WININFO* pWinInfo, SCREEN_MODE mode) Settings.ShowToolbar = Settings.ShowStatusbar = false; s_bPrevFullScreenFlag = true; } - //SetMenu(Globals.hwndMain, NULL); + + DrawMenuBar(Globals.hwndMain); MsgThemeChanged(hWindow, (WPARAM)NULL, (LPARAM)NULL); } @@ -10658,7 +10649,6 @@ void CALLBACK WatchTimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime) // // PasteBoardTimer() // -// void CALLBACK PasteBoardTimer(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime) { if ((s_dwLastCopyTime > 0) && ((GetTickCount() - s_dwLastCopyTime) > 200)) { @@ -10687,4 +10677,31 @@ void CALLBACK PasteBoardTimer(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime) UNUSED(hwnd); } + +//============================================================================= +// +// CloseNonModalDialogs() +// +void CloseNonModalDialogs() +{ + if (IsWindow(Globals.hwndDlgFindReplace)) { + PostMessage(Globals.hwndDlgFindReplace, WM_CLOSE, 0, 0); + } + if (IsWindow(Globals.hwndDlgCustomizeSchemes)) { + PostMessage(Globals.hwndDlgCustomizeSchemes, WM_CLOSE, 0, 0); + } +} + + +//============================================================================= +// +// CloseApplication() +// +void CloseApplication() +{ + CloseNonModalDialogs(); + PostMessage(Globals.hwndMain, WM_CLOSE, 0, 0); +} + + /// End of Notepad3.c /// diff --git a/src/Notepad3.h b/src/Notepad3.h index 9a2c0fb0a..6535b835e 100644 --- a/src/Notepad3.h +++ b/src/Notepad3.h @@ -179,6 +179,8 @@ bool OpenFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir) bool SaveFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir); void CreateBars(HWND hwnd, HINSTANCE hInstance); +void CloseNonModalDialogs(); +void CloseApplication(); LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam); LRESULT MsgCreate(HWND hwnd, WPARAM wParam, LPARAM lParam); From 51bcb2127f5310de309df3ed1895201c457a893d Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 21:59:47 +0200 Subject: [PATCH 2/6] + chg: Scintilla: allow CamelCase/StartCase word lists --- scintilla/lexlib/WordList.cxx | 9 +++- src/StyleLexers/styleLexAHKL.c | 83 +++++++++++++++++++++++++++++++--- 2 files changed, 85 insertions(+), 7 deletions(-) diff --git a/scintilla/lexlib/WordList.cxx b/scintilla/lexlib/WordList.cxx index c8b4cd63b..568b2b4ea 100644 --- a/scintilla/lexlib/WordList.cxx +++ b/scintilla/lexlib/WordList.cxx @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -121,7 +122,12 @@ void WordList::Set(const char *s) { Clear(); const size_t lenS = strlen(s) + 1; list = new char[lenS]; - memcpy(list, s, lenS); + // >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>> + //~memcpy(list, s, lenS); + for (size_t i = 0; i < lenS; ++i) { + list[i] = static_cast(std::tolower(static_cast(s[i]))); + } + // <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<< words = ArrayFromWordList(list, &len, onlyLineEnds); #ifdef _MSC_VER std::sort(words, words + len, cmpWords); @@ -140,6 +146,7 @@ void WordList::Set(const char *s) { * Prefix elements start with '^' and match all strings that start with the rest of the element * so '^GTK_' matches 'GTK_X', 'GTK_MAJOR_VERSION', and 'GTK_'. */ + bool WordList::InList(const char *s) const { if (0 == words) return false; diff --git a/src/StyleLexers/styleLexAHKL.c b/src/StyleLexers/styleLexAHKL.c index 35b23c094..0aa0dd2ac 100644 --- a/src/StyleLexers/styleLexAHKL.c +++ b/src/StyleLexers/styleLexAHKL.c @@ -4,19 +4,90 @@ KEYWORDLIST KeyWords_AHKL = { // Directives -"#AllowSameLineComments #ClipboardTimeout #CommentFlag #ErrorStdOut #EscapeChar #HotkeyInterval #HotkeyModifierTimeout #Hotstring #If #IfTimeout #IfWinActive #IfWinExist #IfWinNotActive #IfWinNotExist #Include #IncludeAgain #InputLevel #InstallKeybdHook #InstallMouseHook #KeyHistory #LTrim #MaxHotkeysPerInterval #MaxMem #MaxThreads #MaxThreadsBuffer #MaxThreadsPerHotkey #MenuMaskKey #NoEnv #NoTrayIcon #Persistent #SingleInstance #UseHook #Warn #WinActivateForce", +"#AllowSameLineComments #ClipboardTimeout #CommentFlag #ErrorStdOut #EscapeChar #HotkeyInterval #HotkeyModifierTimeout " +"#Hotstring #If #IfTimeout #IfWinActive #IfWinExist #IfWinNotActive #IfWinNotExist #Include #IncludeAgain #InputLevel " +"#InstallKeybdHook #InstallMouseHook #KeyHistory #LTrim #MaxHotkeysPerInterval #MaxMem #MaxThreads #MaxThreadsBuffer " +"#MaxThreadsPerHotkey #MenuMaskKey #NoEnv #NoTrayIcon #Persistent #SingleInstance #UseHook #Warn #WinActivateForce", // Commands -"AutoTrim BlockInput Click ClipWait Control ControlClick ControlFocus ControlGet ControlGetFocus ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw ControlSetText CoordMode Critical DetectHiddenText DetectHiddenWindows Drive DriveGet DriveSpaceFree Edit EnvAdd EnvDiv EnvGet EnvMult EnvSet EnvSub EnvUpdate FileAppend FileCopy FileCopyDir FileCreateDir FileCreateShortcut FileDelete FileEncoding FileGetAttrib FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileMoveDir FileRead FileReadLine FileRecycle FileRecycleEmpty FileRemoveDir FileSelectFile FileSelectFolder FileSetAttrib FileSetTime FormatTime GetKeyState GroupActivate GroupAdd GroupClose GroupDeactivate Gui GuiControl GuiControlGet Hotkey IfEqual IfExist IfGreater IfGreaterOrEqual IfInString IfLess IfLessOrEqual IfMsgBox IfNotEqual IfNotExist IfNotInString IfWinActive IfWinExist IfWinNotActive IfWinNotExist ImageSearch IniDelete IniRead IniWrite Input InputBox KeyHistory KeyWait ListHotkeys ListLines ListVars Menu MouseClick MouseClickDrag MouseGetPos MouseMove MsgBox OutputDebug PixelGetColor PixelSearch PostMessage Process Progress Random RegDelete RegRead RegWrite Reload Run RunAs RunWait Send SendEvent SendInput SendLevel SendMessage SendMode SendPlay SendRaw SetBatchLines SetCapslockState SetControlDelay SetDefaultMouseSpeed SetEnv SetFormat SetKeyDelay SetMouseDelay SetNumlockState SetRegView SetScrollLockState SetStoreCapslockMode SetTitleMatchMode SetWinDelay SetWorkingDir Shutdown Sort SoundBeep SoundGet SoundGetWaveVolume SoundPlay SoundSet SoundSetWaveVolume SplashImage SplashTextOff SplashTextOn SplitPath StatusBarGetText StatusBarWait StringCaseSense StringGetPos StringLeft StringLen StringLower StringMid StringReplace StringRight StringSplit StringTrimLeft StringTrimRight StringUpper SysGet Thread Throw ToolTip Transform TrayTip URLDownloadToFile WinActivate WinActivateBottom WinClose WinGet WinGetActiveStats WinGetActiveTitle WinGetClass WinGetPos WinGetText WinGetTitle WinHide WinKill WinMaximize WinMenuSelectItem WinMinimize WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet WinSetTitle WinShow WinWait WinWaitActive WinWaitClose WinWaitNotActive", +"AutoTrim BlockInput Click ClipWait Control ControlClick ControlFocus ControlGet ControlGetFocus ControlGetPos " +"ControlGetText ControlMove ControlSend ControlSendRaw ControlSetText CoordMode Critical DetectHiddenText " +"DetectHiddenWindows Drive DriveGet DriveSpaceFree Edit EnvAdd EnvDiv EnvGet EnvMult EnvSet EnvSub EnvUpdate " +"FileAppend FileCopy FileCopyDir FileCreateDir FileCreateShortcut FileDelete FileEncoding FileGetAttrib FileGetShortcut " +"FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileMoveDir FileRead FileReadLine FileRecycle FileRecycleEmpty " +"FileRemoveDir FileSelectFile FileSelectFolder FileSetAttrib FileSetTime FormatTime GetKeyState GroupActivate GroupAdd " +"GroupClose GroupDeactivate Gui GuiControl GuiControlGet Hotkey IfEqual IfExist IfGreater IfGreaterOrEqual IfInString " +"IfLess IfLessOrEqual IfMsgBox IfNotEqual IfNotExist IfNotInString IfWinActive IfWinExist IfWinNotActive IfWinNotExist " +"ImageSearch IniDelete IniRead IniWrite Input InputBox KeyHistory KeyWait ListHotkeys ListLines ListVars Menu MouseClick " +"MouseClickDrag MouseGetPos MouseMove MsgBox OutputDebug PixelGetColor PixelSearch PostMessage Process Progress Random " +"RegDelete RegRead RegWrite Reload Run RunAs RunWait Send SendEvent SendInput SendLevel SendMessage SendMode SendPlay " +"SendRaw SetBatchLines SetCapslockState SetControlDelay SetDefaultMouseSpeed SetEnv SetFormat SetKeyDelay SetMouseDelay " +"SetNumlockState SetRegView SetScrollLockState SetStoreCapslockMode SetTitleMatchMode SetWinDelay SetWorkingDir Shutdown " +"Sort SoundBeep SoundGet SoundGetWaveVolume SoundPlay SoundSet SoundSetWaveVolume SplashImage SplashTextOff SplashTextOn " +"SplitPath StatusBarGetText StatusBarWait StringCaseSense StringGetPos StringLeft StringLen StringLower StringMid " +"StringReplace StringRight StringSplit StringTrimLeft StringTrimRight StringUpper SysGet Thread Throw ToolTip Transform " +"TrayTip URLDownloadToFile WinActivate WinActivateBottom WinClose WinGet WinGetActiveStats WinGetActiveTitle WinGetClass " +"WinGetPos WinGetText WinGetTitle WinHide WinKill WinMaximize WinMenuSelectItem WinMinimize WinMinimizeAll WinMinimizeAllUndo " +"WinMove WinRestore WinSet WinSetTitle WinShow WinWait WinWaitActive WinWaitClose WinWaitNotActive", // Command Parameters -"Pixel Mouse Screen Relative RGB Caret Menu LTrim RTrim Join Low BelowNormal Normal AboveNormal High Realtime ahk_class ahk_exe ahk_id ahk_group ahk_pid Between Contains In Is Integer Float Number Digit Xdigit Alpha Upper Lower Alnum Time Date not or and AlwaysOnTop Topmost Top Bottom Transparent TransColor Redraw Region ID IDLast ProcessName MinMax ControlList Count List Capacity StatusCD Eject Lock Unlock Label FileSystem Label SetLabel Serial Type Status static global local ByRef Seconds Minutes Hours Days Read Parse Logoff Close Error Single Tray Add Rename Check UnCheck ToggleCheck Enable Disable ToggleEnable Default NoDefault Standard NoStandard Color Delete DeleteAll Icon NoIcon Tip Click Show MainWindow NoMainWindow UseErrorLevel Text Picture Pic GroupBox Button Checkbox Radio DropDownList DDL ComboBox ListBox ListView DateTime MonthCal Slider StatusBar Tab Tab2 TreeView UpDown ActiveX Link Custom IconSmall Tile Report SortDesc NoSort NoSortHdr Grid Hdr AutoSize Range xm ym ys xs xp yp Font Resize Owner Submit NoHide Minimize Maximize Restore NoActivate NA Cancel Destroy Center DPIScale Margin MaxSize MinSize OwnDialogs GuiEscape GuiClose GuiSize GuiContextMenu GuiDropFiles OnClipboardChange TabStop Section AltSubmit Wrap HScroll VScroll Border Top Bottom Buttons Expand First ImageList Lines WantCtrlA WantF2 Vis VisFirst Number Uppercase Lowercase Limit Password Multi WantReturn Group Background bold italic strike underline norm BackgroundTrans Theme Caption Delimiter MinimizeBox MaximizeBox SysMenu ToolWindow Flash Style ExStyle Check3 Checked CheckedGray ReadOnly Password Hidden Left Right Center NoTab Section Move Focus Hide Choose ChooseString Text Pos Enabled Disabled Visible LastFound LastFoundExist AltTab ShiftAltTab AltTabMenu AltTabAndMenu AltTabMenuDismiss NoTimers Interrupt Priority WaitClose Wait Exist Close {Blind} {Click} {Raw} {AltDown} {AltUp} {ShiftDown} {ShiftUp} {CtrlDown} {CtrlUp} {LWinDown} {LWinUp} {RWinDown} {RWinUp} Unicode Asc Chr Deref Mod Pow Exp Sqrt Log Ln Round Ceil Floor Abs Sin Cos Tan ASin ACos ATan BitNot BitAnd BitOr BitXOr BitShiftLeft BitShiftRight ToCodePage FromCodePage Yes No Ok Cancel Abort Retry Ignore TryAgain On Off All HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_USER HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKLM HKU HKCU HKCR HKCC REG_SZ REG_EXPAND_SZ REG_MULTI_SZ REG_DWORD REG_BINARY class new extends", +"Pixel Mouse Screen Relative RGB Caret Menu LTrim RTrim Join Low BelowNormal Normal AboveNormal High Realtime ahk_class " +"ahk_exe ahk_id ahk_group ahk_pid Between Contains In Is Integer Float Number Digit Xdigit Alpha Upper Lower Alnum Time " +"Date not or and AlwaysOnTop Topmost Top Bottom Transparent TransColor Redraw Region ID IDLast ProcessName MinMax ControlList " +"Count List Capacity StatusCD Eject Lock Unlock Label FileSystem Label SetLabel Serial Type Status static global local ByRef " +"Seconds Minutes Hours Days Read Parse Logoff Close Error Single Tray Add Rename Check UnCheck ToggleCheck Enable Disable " +"ToggleEnable Default NoDefault Standard NoStandard Color Delete DeleteAll Icon NoIcon Tip Click Show MainWindow NoMainWindow " +"UseErrorLevel Text Picture Pic GroupBox Button Checkbox Radio DropDownList DDL ComboBox ListBox ListView DateTime MonthCal " +"Slider StatusBar Tab Tab2 TreeView UpDown ActiveX Link Custom IconSmall Tile Report SortDesc NoSort NoSortHdr Grid Hdr AutoSize " +"Range xm ym ys xs xp yp Font Resize Owner Submit NoHide Minimize Maximize Restore NoActivate NA Cancel Destroy Center DPIScale " +"Margin MaxSize MinSize OwnDialogs GuiEscape GuiClose GuiSize GuiContextMenu GuiDropFiles OnClipboardChange TabStop Section " +"AltSubmit Wrap HScroll VScroll Border Top Bottom Buttons Expand First ImageList Lines WantCtrlA WantF2 Vis VisFirst Number " +"Uppercase Lowercase Limit Password Multi WantReturn Group Background bold italic strike underline norm BackgroundTrans Theme " +"Caption Delimiter MinimizeBox MaximizeBox SysMenu ToolWindow Flash Style ExStyle Check3 Checked CheckedGray ReadOnly Password " +"Hidden Left Right Center NoTab Section Move Focus Hide Choose ChooseString Text Pos Enabled Disabled Visible LastFound " +"LastFoundExist AltTab ShiftAltTab AltTabMenu AltTabAndMenu AltTabMenuDismiss NoTimers Interrupt Priority WaitClose Wait Exist " +"Close {Blind} {Click} {Raw} {AltDown} {AltUp} {ShiftDown} {ShiftUp} {CtrlDown} {CtrlUp} {LWinDown} {LWinUp} {RWinDown} {RWinUp} " +"Unicode Asc Chr Deref Mod Pow Exp Sqrt Log Ln Round Ceil Floor Abs Sin Cos Tan ASin ACos ATan BitNot BitAnd BitOr BitXOr " +"BitShiftLeft BitShiftRight ToCodePage FromCodePage Yes No Ok Cancel Abort Retry Ignore TryAgain On Off All HKEY_LOCAL_MACHINE " +"HKEY_USERS HKEY_CURRENT_USER HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKLM HKU HKCU HKCR HKCC REG_SZ REG_EXPAND_SZ REG_MULTI_SZ " +"REG_DWORD REG_BINARY class new extends", // Control Flow "Break Continue If Else Exit ExitApp GoSub Goto Loop Pause Return SetTimer Sleep Suspend While Until For Try Catch Finally", // Built-in Functions -"Abs ACos Asc ASin ATan Ceil Chr Cos DllCall Exp FileExist Floor Format Func IsByRef IsFunc IsLabel Ln Log FileExist FileOpen GetKeyState GetKeyName GetKeyVK GetKeySC InStr IL_Add IL_Create IL_Destroy LV_Add LV_Delete LV_DeleteCol LV_GetCount LV_GetNext LV_GetText LV_Insert LV_InsertCol LV_Modify LV_ModifyCol LV_SetImageList Trim LTrim RTrim Mod NumGet NumPut OnMessage Ord RegExMatch RegExReplace RegisterCallback Round SB_SetIcon SB_SetParts SB_SetText Sin Sqrt StrGet StrLen StrPut StrReplace StrSplit SubStr Tan TV_Add TV_Delete TV_GetChild TV_GetCount TV_GetNext TV_Get TV_GetParent TV_GetPrev TV_GetSelection TV_GetText TV_Modify TV_SetImageList VarSetCapacity WinActive WinExist Object Array IsObject ObjInsert _Insert ObjRemove _Remove ObjMinIndex _MinIndex ObjMaxIndex _MaxIndex ObjSetCapacity _SetCapacity ObjGetCapacity _GetCapacity ObjGetAddress _GetAddress ObjNewEnum _NewEnum ObjAddRef _AddRef ObjRelease _Release ObjHasKey _HasKey ObjClone _Clone __Get __Set __Call __Delete __New ComObjCreate ComObjGet ComObjConnect ComObjError ComObjActive ComObjEnwrap ComObjUnwrap ComObjParameter ComObjType ComObjValue ComObjMissing ComObjArray ComObjQuery ComObjFlags", +"Abs ACos Asc ASin ATan Ceil Chr Cos DllCall Exp FileExist Floor Format Func IsByRef IsFunc IsLabel Ln Log FileExist FileOpen " +"GetKeyState GetKeyName GetKeyVK GetKeySC InStr IL_Add IL_Create IL_Destroy LV_Add LV_Delete LV_DeleteCol LV_GetCount LV_GetNext " +"LV_GetText LV_Insert LV_InsertCol LV_Modify LV_ModifyCol LV_SetImageList Trim LTrim RTrim Mod NumGet NumPut OnMessage Ord " +"RegExMatch RegExReplace RegisterCallback Round SB_SetIcon SB_SetParts SB_SetText Sin Sqrt StrGet StrLen StrPut StrReplace " +"StrSplit SubStr Tan TV_Add TV_Delete TV_GetChild TV_GetCount TV_GetNext TV_Get TV_GetParent TV_GetPrev TV_GetSelection TV_GetText " +"TV_Modify TV_SetImageList VarSetCapacity WinActive WinExist Object Array IsObject ObjInsert _Insert ObjRemove _Remove ObjMinIndex " +"_MinIndex ObjMaxIndex _MaxIndex ObjSetCapacity _SetCapacity ObjGetCapacity _GetCapacity ObjGetAddress _GetAddress ObjNewEnum " +"_NewEnum ObjAddRef _AddRef ObjRelease _Release ObjHasKey _HasKey ObjClone _Clone __Get __Set __Call __Delete __New ComObjCreate " +"ComObjGet ComObjConnect ComObjError ComObjActive ComObjEnwrap ComObjUnwrap ComObjParameter ComObjType ComObjValue ComObjMissing " +"ComObjArray ComObjQuery ComObjFlags", // Built-in Variables -"A_AhkPath A_AhkVersion A_AppData A_AppDataCommon A_AutoTrim A_BatchLines A_CaretX A_CaretY A_ComputerName A_ControlDelay A_Cursor A_DD A_DDD A_DDDD A_DefaultMouseSpeed A_Desktop A_DesktopCommon A_DetectHiddenText A_DetectHiddenWindows A_EndChar A_EventInfo A_ExitReason A_FileEncoding A_FormatFloat A_FormatInteger A_Gui A_GuiEvent A_GuiControl A_GuiControlEvent A_GuiHeight A_GuiWidth A_GuiX A_GuiY A_Hour A_IconFile A_IconHidden A_IconNumber A_IconTip A_Index A_IPAddress1 A_IPAddress2 A_IPAddress3 A_IPAddress4 A_Is64bitOS A_IsAdmin A_IsCompiled A_IsCritical A_IsPaused A_IsSuspended A_IsUnicode A_KeyDelay A_Language A_LastError A_LineFile A_LineNumber A_LoopField A_LoopFileAttrib A_LoopFileDir A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileName A_LoopFileShortName A_LoopFileShortPath A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB A_LoopFileTimeAccessed A_LoopFileTimeCreated A_LoopFileTimeModified A_LoopReadLine A_LoopRegKey A_LoopRegName A_LoopRegSubkey A_LoopRegTimeModified A_LoopRegType A_MDAY A_Min A_MM A_MMM A_MMMM A_Mon A_MouseDelay A_MSec A_MyDocuments A_Now A_NowUTC A_NumBatchLines A_OSType A_OSVersion A_PriorHotkey A_PriorKey A_ProgramFiles A_Programs A_ProgramsCommon A_PtrSize A_RegView A_ScreenDPI A_ScreenHeight A_ScreenWidth A_ScriptDir A_ScriptFullPath A_ScriptHwnd A_ScriptName A_Sec A_Space A_StartMenu A_StartMenuCommon A_Startup A_StartupCommon A_StringCaseSense A_Tab A_Temp A_ThisFunc A_ThisHotkey A_ThisLabel A_ThisMenu A_ThisMenuItem A_ThisMenuItemPos A_TickCount A_TimeIdle A_TimeIdlePhysical A_TimeSincePriorHotkey A_TimeSinceThisHotkey A_TitleMatchMode A_TitleMatchModeSpeed A_UserName A_WDay A_WinDelay A_WinDir A_WorkingDir A_YDay A_YEAR A_YWeek A_YYYY Clipboard ClipboardAll ComSpec ErrorLevel ProgramFiles true false", +"A_AhkPath A_AhkVersion A_AppData A_AppDataCommon A_AutoTrim A_BatchLines A_CaretX A_CaretY A_ComputerName A_ControlDelay " +"A_Cursor A_DD A_DDD A_DDDD A_DefaultMouseSpeed A_Desktop A_DesktopCommon A_DetectHiddenText A_DetectHiddenWindows A_EndChar " +"A_EventInfo A_ExitReason A_FileEncoding A_FormatFloat A_FormatInteger A_Gui A_GuiEvent A_GuiControl A_GuiControlEvent A_GuiHeight " +"A_GuiWidth A_GuiX A_GuiY A_Hour A_IconFile A_IconHidden A_IconNumber A_IconTip A_Index A_IPAddress1 A_IPAddress2 A_IPAddress3 " +"A_IPAddress4 A_Is64bitOS A_IsAdmin A_IsCompiled A_IsCritical A_IsPaused A_IsSuspended A_IsUnicode A_KeyDelay A_Language A_LastError " +"A_LineFile A_LineNumber A_LoopField A_LoopFileAttrib A_LoopFileDir A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileName " +"A_LoopFileShortName A_LoopFileShortPath A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB A_LoopFileTimeAccessed A_LoopFileTimeCreated " +"A_LoopFileTimeModified A_LoopReadLine A_LoopRegKey A_LoopRegName A_LoopRegSubkey A_LoopRegTimeModified A_LoopRegType A_MDAY A_Min A_MM " +"A_MMM A_MMMM A_Mon A_MouseDelay A_MSec A_MyDocuments A_Now A_NowUTC A_NumBatchLines A_OSType A_OSVersion A_PriorHotkey A_PriorKey " +"A_ProgramFiles A_Programs A_ProgramsCommon A_PtrSize A_RegView A_ScreenDPI A_ScreenHeight A_ScreenWidth A_ScriptDir A_ScriptFullPath " +"A_ScriptHwnd A_ScriptName A_Sec A_Space A_StartMenu A_StartMenuCommon A_Startup A_StartupCommon A_StringCaseSense A_Tab A_Temp " +"A_ThisFunc A_ThisHotkey A_ThisLabel A_ThisMenu A_ThisMenuItem A_ThisMenuItemPos A_TickCount A_TimeIdle A_TimeIdlePhysical " +"A_TimeSincePriorHotkey A_TimeSinceThisHotkey A_TitleMatchMode A_TitleMatchModeSpeed A_UserName A_WDay A_WinDelay A_WinDir A_WorkingDir " +"A_YDay A_YEAR A_YWeek A_YYYY Clipboard ClipboardAll ComSpec ErrorLevel ProgramFiles true false", // Keyboard & Mouse Keys -"^ + ! # ~ $ ` Shift LShift RShift Alt LAlt RAlt Control LControl RControl Ctrl LCtrl RCtrl LWin RWin AppsKey AltDown AltUp ShiftDown ShiftUp CtrlDown CtrlUp LWinDown LWinUp RWinDown RWinUp LButton RButton MButton WheelUp WheelDown XButton1 XButton2 Joy1 Joy2 Joy3 Joy4 Joy5 Joy6 Joy7 Joy8 Joy9 Joy10 Joy11 Joy12 Joy13 Joy14 Joy15 Joy16 Joy17 Joy18 Joy19 Joy20 Joy21 Joy22 Joy23 Joy24 Joy25 Joy26 Joy27 Joy28 Joy29 Joy30 Joy31 Joy32 JoyX JoyY JoyZ JoyR JoyU JoyV JoyPOV JoyName JoyButtons JoyAxes JoyInfo Space Tab Enter Escape Esc BackSpace BS Delete Del Insert Ins PGUP PGDN Home End Up Down Left Right PrintScreen CtrlBreak Pause ScrollLock CapsLock NumLock Numpad0 Numpad1 Numpad2 Numpad3 Numpad4 Numpad5 Numpad6 Numpad7 Numpad8 Numpad9 NumpadMult NumpadAdd NumpadSub NumpadDiv NumpadDot NumpadDel NumpadIns NumpadClear NumpadUp NumpadDown NumpadLeft NumpadRight NumpadHome NumpadEnd NumpadPgup NumpadPgdn NumpadEnter F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 Browser_Back Browser_Forward Browser_Refresh Browser_Stop Browser_Search Browser_Favorites Browser_Home Volume_Mute Volume_Down Volume_Up Media_Next Media_Prev Media_Stop Media_Play_Pause Launch_Mail Launch_Media Launch_App1 Launch_App2", +"Shift LShift RShift Alt LAlt RAlt Control LControl RControl Ctrl LCtrl RCtrl LWin RWin AppsKey AltDown AltUp ShiftDown " +"ShiftUp CtrlDown CtrlUp LWinDown LWinUp RWinDown RWinUp LButton RButton MButton WheelUp WheelDown XButton1 XButton2 Joy1 Joy2 Joy3 " +"Joy4 Joy5 Joy6 Joy7 Joy8 Joy9 Joy10 Joy11 Joy12 Joy13 Joy14 Joy15 Joy16 Joy17 Joy18 Joy19 Joy20 Joy21 Joy22 Joy23 Joy24 Joy25 Joy26 " +"Joy27 Joy28 Joy29 Joy30 Joy31 Joy32 JoyX JoyY JoyZ JoyR JoyU JoyV JoyPOV JoyName JoyButtons JoyAxes JoyInfo Space Tab Enter Escape " +"Esc BackSpace BS Delete Del Insert Ins PGUP PGDN Home End Up Down Left Right PrintScreen CtrlBreak Pause ScrollLock CapsLock NumLock " +"Numpad0 Numpad1 Numpad2 Numpad3 Numpad4 Numpad5 Numpad6 Numpad7 Numpad8 Numpad9 NumpadMult NumpadAdd NumpadSub NumpadDiv NumpadDot " +"NumpadDel NumpadIns NumpadClear NumpadUp NumpadDown NumpadLeft NumpadRight NumpadHome NumpadEnd NumpadPgup NumpadPgdn NumpadEnter " +"F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 Browser_Back Browser_Forward Browser_Refresh " +"Browser_Stop Browser_Search Browser_Favorites Browser_Home Volume_Mute Volume_Down Volume_Up Media_Next Media_Prev Media_Stop " +"Media_Play_Pause Launch_Mail Launch_Media Launch_App1 Launch_App2", // User Defined 1 "", // User Defined 2 From 43931a7d6dff500ca077707e60b6eb64e0f1c537 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 22:00:59 +0200 Subject: [PATCH 3/6] + ver: version settings only --- Versions/build.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/VersionEx.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Versions/build.txt b/Versions/build.txt index a29a07aa7..f5b23f4df 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2636 +2637 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 436c3dbf7..39b99217b 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 BETA diff --git a/src/VersionEx.h b/src/VersionEx.h index cb3939bce..29cc190cb 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,7 +8,7 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 19 #define VERSION_REV 916 -#define VERSION_BUILD 2636 +#define VERSION_BUILD 2637 #define SCINTILLA_VER 420 #define ONIGURUMA_REGEX_VER 6.9.3 #define UCHARDET_VER 2018.09.27 From 5253cfd07b945dcfe0252def7a1cf139a02d7d9d Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 22:19:55 +0200 Subject: [PATCH 4/6] + fix: simple ASCII replacement for std::tolower() --- scintilla/lexlib/WordList.cxx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scintilla/lexlib/WordList.cxx b/scintilla/lexlib/WordList.cxx index 568b2b4ea..6463e89df 100644 --- a/scintilla/lexlib/WordList.cxx +++ b/scintilla/lexlib/WordList.cxx @@ -8,7 +8,6 @@ #include #include #include -#include #include #include @@ -118,15 +117,24 @@ static void SortWordList(char **words, unsigned int len) { #endif + +// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>> +constexpr char asciitolower(const char ch) noexcept { + if ((ch >= 'A') && (ch <= 'Z')) { + return (ch - ('Z' - 'z')); + } + return ch; +} +// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<< + + void WordList::Set(const char *s) { Clear(); const size_t lenS = strlen(s) + 1; list = new char[lenS]; // >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>> - //~memcpy(list, s, lenS); - for (size_t i = 0; i < lenS; ++i) { - list[i] = static_cast(std::tolower(static_cast(s[i]))); - } + //~memcpy(list, s, lenS); + for (size_t i = 0; i < lenS; ++i) { list[i] = asciitolower(s[i]); } // <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<< words = ArrayFromWordList(list, &len, onlyLineEnds); #ifdef _MSC_VER From 1fdab1ae085bca25621f67e976071ab876da5c48 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 22:38:17 +0200 Subject: [PATCH 5/6] + fix: remove ctrl chars from keyword lists (should be done by lexer) --- src/StyleLexers/styleLexAHKL.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StyleLexers/styleLexAHKL.c b/src/StyleLexers/styleLexAHKL.c index 052b5b856..c65932664 100644 --- a/src/StyleLexers/styleLexAHKL.c +++ b/src/StyleLexers/styleLexAHKL.c @@ -98,7 +98,7 @@ KEYWORDLIST KeyWords_AHKL = { "A_WinDir A_WorkingDir A_YDay A_YEAR A_YWeek A_YYYY Clipboard ClipboardAll ComSpec ErrorLevel " "ProgramFiles true false", // Keyboard & Mouse Keys -"^ + ! # ~ $ ` Shift LShift RShift Alt LAlt RAlt Control LControl RControl Ctrl LCtrl RCtrl " +"Shift LShift RShift Alt LAlt RAlt Control LControl RControl Ctrl LCtrl RCtrl " "LWin RWin AppsKey AltDown AltUp ShiftDown ShiftUp CtrlDown CtrlUp LWinDown LWinUp RWinDown " "RWinUp LButton RButton MButton WheelUp WheelDown XButton1 XButton2 Joy1 Joy2 Joy3 Joy4 Joy5 " "Joy6 Joy7 Joy8 Joy9 Joy10 Joy11 Joy12 Joy13 Joy14 Joy15 Joy16 Joy17 Joy18 Joy19 Joy20 Joy21 " From d3511d802ebf31e5e3ca0af17e5ff5c047f2ff9c Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 16 Sep 2019 22:44:41 +0200 Subject: [PATCH 6/6] + ver: version number only --- Versions/build.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/VersionEx.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Versions/build.txt b/Versions/build.txt index 20d91c656..bec09296c 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2638 +2639 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 7ec2d7c09..15241df9b 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 BETA diff --git a/src/VersionEx.h b/src/VersionEx.h index 56e11a2d0..2ad2d4157 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,7 +8,7 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 19 #define VERSION_REV 916 -#define VERSION_BUILD 2638 +#define VERSION_BUILD 2639 #define SCINTILLA_VER 420 #define ONIGURUMA_REGEX_VER 6.9.3 #define UCHARDET_VER 2018.09.27