From fa307665668fd4feba108a784960baa1917e2167 Mon Sep 17 00:00:00 2001 From: "METANEOCORTEX\\Kotti" Date: Mon, 15 Nov 2021 18:01:09 +0100 Subject: [PATCH 1/2] +fix: Don't clear occurrence markers for unchanged search pattern --- src/Edit.c | 68 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index 1d7ff119b..a371f2f98 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -5940,6 +5940,9 @@ static bool _EnableFRDlgCtrls(HWND hwnd) { // extern int g_flagMatchText; +static WCHAR s_tchBufIn[FNDRPL_BUFFER] = { L'\0' }; // tmp working buffer +static WCHAR s_tchBufOut[FNDRPL_BUFFER] = { L'\0' }; // tmp working buffer + static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) { static EDITFINDREPLACE s_efrSave = INIT_EFR_DATA; @@ -5948,8 +5951,6 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar static UINT_PTR pTimerIdentifier = 0; - static WCHAR s_tchBuf[FNDRPL_BUFFER] = { L'\0' }; // tmp working buffer - static DocPos s_InitialSearchStart = 0; static DocPos s_InitialAnchorPos = 0; static DocPos s_InitialCaretPos = 0; @@ -6024,8 +6025,8 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar // Load MRUs for (int i = 0; i < MRU_Count(Globals.pMRUfind); i++) { - MRU_Enum(Globals.pMRUfind, i, s_tchBuf, COUNTOF(s_tchBuf)); - SendDlgItemMessage(hwnd, IDC_FINDTEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBuf); + MRU_Enum(Globals.pMRUfind, i, s_tchBufOut, COUNTOF(s_tchBufOut)); + SendDlgItemMessage(hwnd, IDC_FINDTEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBufOut); } SendDlgItemMessage(hwnd, IDC_FINDTEXT, CB_LIMITTEXT, FNDRPL_BUFFER, 0); @@ -6034,7 +6035,7 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar COMBOBOXINFO cbInfoF = { sizeof(COMBOBOXINFO) }; GetComboBoxInfo(GetDlgItem(hwnd, IDC_FINDTEXT), &cbInfoF); if (cbInfoF.hwndItem) { - SetWindowSubclass(cbInfoF.hwndItem, EditBoxForPasteFixes, 0, (DWORD_PTR) &(s_tchBuf[0])); + SetWindowSubclass(cbInfoF.hwndItem, EditBoxForPasteFixes, 0, (DWORD_PTR) &(s_tchBufOut[0])); SHAutoComplete(cbInfoF.hwndItem, SHACF_FILESYS_ONLY | SHACF_AUTOAPPEND_FORCE_OFF | SHACF_AUTOSUGGEST_FORCE_OFF); } @@ -6046,8 +6047,8 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar // Load MRUs for (int i = 0; i < MRU_Count(Globals.pMRUreplace); i++) { - MRU_Enum(Globals.pMRUreplace, i, s_tchBuf, COUNTOF(s_tchBuf)); - SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBuf); + MRU_Enum(Globals.pMRUreplace, i, s_tchBufOut, COUNTOF(s_tchBufOut)); + SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBufOut); } SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_LIMITTEXT, FNDRPL_BUFFER, 0); @@ -6056,7 +6057,7 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar COMBOBOXINFO cbInfoR = { sizeof(COMBOBOXINFO) }; GetComboBoxInfo(GetDlgItem(hwnd, IDC_REPLACETEXT), &cbInfoR); if (cbInfoR.hwndItem) { - SetWindowSubclass(cbInfoR.hwndItem, EditBoxForPasteFixes, 0, (DWORD_PTR) &(s_tchBuf[0])); + SetWindowSubclass(cbInfoR.hwndItem, EditBoxForPasteFixes, 0, (DWORD_PTR) &(s_tchBufOut[0])); SHAutoComplete(cbInfoR.hwndItem, SHACF_FILESYS_ONLY | SHACF_AUTOAPPEND_FORCE_OFF | SHACF_AUTOSUGGEST_FORCE_OFF); } ComboBox_SetTextMB2W(hwnd, IDC_REPLACETEXT, s_pEfrDataDlg->szReplace); @@ -6167,10 +6168,10 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar if (!s_bSwitchedFindReplace) { if (s_anyMatch == MATCH) { // Save MRUs - if (!StrIsEmptyA(s_pEfrDataDlg->szFind)) { - if (GetDlgItemText(hwnd, IDC_FINDTEXT, s_tchBuf, COUNTOF(s_tchBuf))) { - MRU_Add(Globals.pMRUfind, s_tchBuf, 0, -1, -1, NULL); - SetFindPattern(s_tchBuf); + if (GetDlgItemText(hwnd, IDC_FINDTEXT, s_tchBufOut, COUNTOF(s_tchBufOut))) { + if (StrIsNotEmpty(s_tchBufOut)) { + MRU_Add(Globals.pMRUfind, s_tchBufOut, 0, -1, -1, NULL); + SetFindPattern(s_tchBufOut); } } } @@ -6435,17 +6436,16 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar } // Globals.bFindReplCopySelOrClip // ------------------------ - _SetSearchFlags(hwnd, s_pEfrDataDlg); SetFindPatternMB(s_pEfrDataDlg->szFind); - EditClearAllOccurrenceMarkers(s_pEfrDataDlg->hwnd); if (!(bFndPatternChanged || s_pEfrDataDlg->bStateChanged)) { break; // return } - // ------------------------ + EditClearAllOccurrenceMarkers(s_pEfrDataDlg->hwnd); + if (_EnableFRDlgCtrls(hwnd)) { EditSetSelectionEx(s_InitialAnchorPos, s_InitialCaretPos, -1, -1); } @@ -6622,14 +6622,17 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar if (!s_bSwitchedFindReplace) { // Save MRUs - if (!StrIsEmptyA(s_pEfrDataDlg->szFind)) { - MultiByteToWideChar(Encoding_SciCP, 0, s_pEfrDataDlg->szFind, -1, s_tchBuf, (int)COUNTOF(s_tchBuf)); - MRU_Add(Globals.pMRUfind, s_tchBuf, 0, -1, -1, NULL); - SetFindPattern(s_tchBuf); + if (GetDlgItemText(hwnd, IDC_FINDTEXT, s_tchBufOut, COUNTOF(s_tchBufOut))) { + if (StrIsNotEmpty(s_tchBufOut)) { + MRU_Add(Globals.pMRUfind, s_tchBufOut, 0, -1, -1, NULL); + SetFindPattern(s_tchBufOut); + } } - if (!StrIsEmptyA(s_pEfrDataDlg->szReplace)) { - MultiByteToWideChar(Encoding_SciCP, 0, s_pEfrDataDlg->szReplace, -1, s_tchBuf, (int)COUNTOF(s_tchBuf)); - MRU_Add(Globals.pMRUreplace, s_tchBuf, 0, -1, -1, NULL); + if (GetDlgItemText(hwnd, IDC_REPLACETEXT, s_tchBufOut, COUNTOF(s_tchBufOut))) { + if (StrIsNotEmpty(s_tchBufOut)) { + MRU_Add(Globals.pMRUfind, s_tchBufOut, 0, -1, -1, NULL); + SetFindPattern(s_tchBufOut); + } } } @@ -6638,12 +6641,12 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_RESETCONTENT, 0, 0); for (int i = 0; i < MRU_Count(Globals.pMRUfind); i++) { - MRU_Enum(Globals.pMRUfind, i, s_tchBuf, COUNTOF(s_tchBuf)); - SendDlgItemMessage(hwnd, IDC_FINDTEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBuf); + MRU_Enum(Globals.pMRUfind, i, s_tchBufIn, COUNTOF(s_tchBufIn)); + SendDlgItemMessage(hwnd, IDC_FINDTEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBufOut); } for (int i = 0; i < MRU_Count(Globals.pMRUreplace); i++) { - MRU_Enum(Globals.pMRUreplace, i, s_tchBuf, COUNTOF(s_tchBuf)); - SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBuf); + MRU_Enum(Globals.pMRUreplace, i, s_tchBufIn, COUNTOF(s_tchBufIn)); + SendDlgItemMessage(hwnd, IDC_REPLACETEXT, CB_ADDSTRING, 0, (LPARAM)s_tchBufOut); } ComboBox_SetTextMB2W(hwnd, IDC_FINDTEXT, s_pEfrDataDlg->szFind); @@ -6710,20 +6713,19 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar case IDC_FINDESCCTRLCHR: case IDC_REPLESCCTRLCHR: { - WCHAR trf[FNDRPL_BUFFER] = { L'\0' }; UINT const ctrl_id = (LOWORD(wParam) == IDC_FINDESCCTRLCHR) ? IDC_FINDTEXT : IDC_REPLACETEXT; - GetDlgItemTextW(hwnd, ctrl_id, s_tchBuf, COUNTOF(s_tchBuf)); - if (SlashCtrlW(trf, COUNTOF(trf), s_tchBuf) == StringCchLen(s_tchBuf, 0)) { - UnSlashCtrlW(trf); + GetDlgItemTextW(hwnd, ctrl_id, s_tchBufIn, COUNTOF(s_tchBufIn)); + if (SlashCtrlW(s_tchBufOut, COUNTOF(s_tchBufOut), s_tchBufIn) == StringCchLen(s_tchBufIn, 0)) { + UnSlashCtrlW(s_tchBufOut); } - SetDlgItemTextW(hwnd, ctrl_id, trf); + SetDlgItemTextW(hwnd, ctrl_id, s_tchBufOut); } break; case IDC_SWAPSTRG: { - WCHAR* wszFind = s_tchBuf; + WCHAR* wszFind = s_tchBufOut; WCHAR wszRepl[FNDRPL_BUFFER] = { L'\0' }; - GetDlgItemTextW(hwnd, IDC_FINDTEXT, wszFind, COUNTOF(s_tchBuf)); + GetDlgItemTextW(hwnd, IDC_FINDTEXT, wszFind, COUNTOF(s_tchBufOut)); GetDlgItemTextW(hwnd, IDC_REPLACETEXT, wszRepl, COUNTOF(wszRepl)); SetDlgItemTextW(hwnd, IDC_FINDTEXT, wszRepl); SetDlgItemTextW(hwnd, IDC_REPLACETEXT, wszFind); From e46a7d381f4ebeea6744d1bb547e622d0439aa61 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 15 Nov 2021 21:50:13 +0100 Subject: [PATCH 2/2] + Upd: Version files and Changes.txt --- Build/Changes.txt | 6 +++++- Notepad3.sln | 4 ++++ Versions/day.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/VersionEx.h | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Build/Changes.txt b/Build/Changes.txt index 17cc1ba2f..24a58094b 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -33,7 +33,7 @@ UCD - (UCD)ARDET is an Encoding Detector Library ======================================================== -Current BETA/RC Version 5.21.1112.(build_#) (2021-11-12) +Current BETA/RC Version 5.21.1115.(build_#) (2021-11-15) ======================================================== -------------------------------------------------------- @@ -46,6 +46,7 @@ NEW: CHANGES: -------------------------------------------------------- [.###.#]- . +[1115.1]- Reverting changes to F/R behavior, correction for empty pattern. [1021.1]- On file restore, do not notify immediately, but check against stored file attributes. [1015.1]- Remove the max win version check for undocumented DarkMode UxTheme methods. [1015.1]- DarkMode enable up to Win11 build 22471. @@ -69,6 +70,9 @@ CHANGES Versions in Tools or Libraries: FIXES: -------------------------------------------------------- [.###.#]- . +[1115.1]- Don't clear occurrence markers for unchanged search pattern. +[1115.1]- Correction to VS2019 project settings. +[1115.1]- Find/Repl wildcard pattern handling. [1112.1]- Find/Repl dialog - empty search string should have no match (blue). [1030.1]- Wrong format for reporting number of replaced occurrences "In Selection". [1030.1]- "grepWinNP3" not intended switching file size search settings (GRE). diff --git a/Notepad3.sln b/Notepad3.sln index 2f6f1b2d5..ab9f96d5b 100644 --- a/Notepad3.sln +++ b/Notepad3.sln @@ -23,6 +23,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Notepad3", "src\Notepad3.vc {0FA07345-601B-474E-99C0-7E61E70DA72E} = {0FA07345-601B-474E-99C0-7E61E70DA72E} {C8E80B4C-C0FD-4119-A05A-AB372A61007F} = {C8E80B4C-C0FD-4119-A05A-AB372A61007F} {76A53B4D-3011-4AAB-8DE9-C0D080FA95CF} = {76A53B4D-3011-4AAB-8DE9-C0D080FA95CF} + {1F757558-0E57-4DE5-82D6-A14E9D81F05F} = {1F757558-0E57-4DE5-82D6-A14E9D81F05F} {B7C9135A-C4AA-4A85-B361-B610B442B57C} = {B7C9135A-C4AA-4A85-B361-B610B442B57C} {15428F5A-16F1-4DA5-9F12-0411183E3DC0} = {15428F5A-16F1-4DA5-9F12-0411183E3DC0} {9B31015C-CB08-4B4B-A957-313A93F862F5} = {9B31015C-CB08-4B4B-A957-313A93F862F5} @@ -30,6 +31,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Notepad3", "src\Notepad3.vc {8BB7B168-FC6D-463A-BBE4-FA595BDD5753} = {8BB7B168-FC6D-463A-BBE4-FA595BDD5753} {4484EA6C-AA9D-4DE4-BAA1-535FFFEFE49E} = {4484EA6C-AA9D-4DE4-BAA1-535FFFEFE49E} {7E16647B-CA40-43E8-8ABB-E4C430C186CA} = {7E16647B-CA40-43E8-8ABB-E4C430C186CA} + {0873B090-7FFD-4ABD-9B42-619A06C5041F} = {0873B090-7FFD-4ABD-9B42-619A06C5041F} {2EB07C98-0F3F-4CB6-B448-099770AF1989} = {2EB07C98-0F3F-4CB6-B448-099770AF1989} {B6757299-D2DD-4103-834D-45227AC13CB7} = {B6757299-D2DD-4103-834D-45227AC13CB7} {3B8C289D-FF47-4237-AD7B-0702230F41A3} = {3B8C289D-FF47-4237-AD7B-0702230F41A3} @@ -55,6 +57,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa {6503214A-CE25-45B5-84BB-61EEFB35D1A9} = {6503214A-CE25-45B5-84BB-61EEFB35D1A9} {DA372A4B-7AE0-4C50-97B7-49D5FF953325} = {DA372A4B-7AE0-4C50-97B7-49D5FF953325} {FF993C51-06FB-461A-9780-FE57BF498155} = {FF993C51-06FB-461A-9780-FE57BF498155} + {1F757558-0E57-4DE5-82D6-A14E9D81F05F} = {1F757558-0E57-4DE5-82D6-A14E9D81F05F} {8CA91C67-2C5E-4983-8EA1-AF4675211A2C} = {8CA91C67-2C5E-4983-8EA1-AF4675211A2C} {3E19AA6A-0935-4320-962A-C1E9378B387C} = {3E19AA6A-0935-4320-962A-C1E9378B387C} {18CD506D-5596-4B58-B868-57FAAC657C6B} = {18CD506D-5596-4B58-B868-57FAAC657C6B} @@ -62,6 +65,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa {53DB2F85-DEEA-4FC0-A89F-1DF5B534A250} = {53DB2F85-DEEA-4FC0-A89F-1DF5B534A250} {39D75486-E269-4640-97BF-04DAC9209AD8} = {39D75486-E269-4640-97BF-04DAC9209AD8} {8346318F-632A-4514-AAD7-A93593759823} = {8346318F-632A-4514-AAD7-A93593759823} + {0873B090-7FFD-4ABD-9B42-619A06C5041F} = {0873B090-7FFD-4ABD-9B42-619A06C5041F} {BF3DEE96-735B-4A5E-95DD-3D3661B62EEF} = {BF3DEE96-735B-4A5E-95DD-3D3661B62EEF} {E0DEC59F-D155-46D8-8866-9F305CC75A2B} = {E0DEC59F-D155-46D8-8866-9F305CC75A2B} {BA9900A1-6FB6-4A6E-A817-830CB6F3D009} = {BA9900A1-6FB6-4A6E-A817-830CB6F3D009} diff --git a/Versions/day.txt b/Versions/day.txt index ecdb865e1..1b6d75c84 100644 --- a/Versions/day.txt +++ b/Versions/day.txt @@ -1 +1 @@ -1112 +1115 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 00f2ccf35..0a67c1f4d 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 rc diff --git a/src/VersionEx.h b/src/VersionEx.h index 51e2d80dc..c256a7516 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,7 +8,7 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 21 -#define VERSION_REV 1112 +#define VERSION_REV 1115 #define VERSION_BUILD 1 #define SCINTILLA_VER 511 #define LEXILLA_VER 511