From bfaa9fed6ccc699d6a35bd0b88598d3b07efdb11 Mon Sep 17 00:00:00 2001 From: rkotten Date: Tue, 28 Sep 2021 13:08:38 +0200 Subject: [PATCH] +chg: Some more DynStrg refactorings and LongPath handling --- src/Config/Config.cpp | 5 ++--- src/Notepad3.c | 5 ++++- src/Styles.c | 4 ++-- src/TypeDefs.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 8b3cdfb22..40027543d 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1170,13 +1170,12 @@ void LoadSettings() Settings2.DefaultExtension, COUNTOF(Settings2.DefaultExtension)); StrTrim(Settings2.DefaultExtension, L" \t."); - IniSectionGetStringNoQuotes(IniSecSettings2, L"DefaultDirectory", L"", pPathBuffer, PATHLONG_MAX_CCH); Path_Reset(Settings2.DefaultDirectory, pPathBuffer); Path_ExpandEnvironmentStrings(Settings2.DefaultDirectory); - IniSectionGetStringNoQuotes(IniSecSettings2, L"FileDlgFilters", L"", - Settings2.FileDlgFilters, COUNTOF(Settings2.FileDlgFilters) - 2); + IniSectionGetStringNoQuotes(IniSecSettings2, L"FileDlgFilters", L"", pPathBuffer, PATHLONG_MAX_CCH); + StrgReset(Settings2.FileDlgFilters, pPathBuffer); Settings2.FileCheckInverval = clampul(IniSectionGetInt(IniSecSettings2, L"FileCheckInverval", 0), 0, 86400000<<2); // max: 48h // handle deprecated old "AutoReloadTimeout" diff --git a/src/Notepad3.c b/src/Notepad3.c index 5ad5bc94e..a18fbe663 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -779,6 +779,7 @@ static void _InitGlobals() Settings2.WebTemplate2 = StrgCreate(NULL); Settings2.HyperlinkShellExURLWithApp = StrgCreate(NULL); Settings2.HyperlinkShellExURLCmdLnArgs = StrgCreate(NULL); + Settings2.FileDlgFilters = StrgCreate(NULL); FocusedView.HideNonMatchedLines = false; FocusedView.CodeFoldingAvailable = false; @@ -885,6 +886,7 @@ static void _CleanUpResources(const HWND hwnd, bool bIsInitialized) // --- free allocated memory --- + StrgDestroy(Settings2.FileDlgFilters); StrgDestroy(Settings2.HyperlinkShellExURLCmdLnArgs); StrgDestroy(Settings2.HyperlinkShellExURLWithApp); StrgDestroy(Settings2.WebTemplate2); @@ -7506,6 +7508,7 @@ bool HandleHotSpotURLClicked(const DocPos position, const HYPERLINK_OPS operatio PathCreateFromUrl(szTextW, szUnEscW, &dCch, 0); szUnEscW[min_u(MAX_PATH, INTERNET_MAX_URL_LENGTH)] = L'\0'; // limit length + // TODO: ยงยงยง @@@ LongPath handling (MAX_PATH) !!! WCHAR * const szFilePath = szUnEscW; StrTrim(szFilePath, L"/"); @@ -11046,7 +11049,7 @@ bool OpenFileDlg(HWND hwnd, LPWSTR lpstrFile, int cchFile, LPCWSTR lpstrInitialD return false; } - WCHAR szFilter[BUFZIZE_STYLE_EXTENTIONS << 1]; + WCHAR szFilter[BUFZIZE_STYLE_EXTENTIONS << 2]; WCHAR szDefExt[64] = { L'\0' }; Style_GetFileFilterStr(szFilter, COUNTOF(szFilter), szDefExt, COUNTOF(szDefExt), false); diff --git a/src/Styles.c b/src/Styles.c index 5dcacaeca..db2a6b6ee 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -2788,8 +2788,8 @@ bool Style_GetFileFilterStr(LPWSTR lpszFilter, int cchFilter, LPWSTR lpszDefExt, StringCchCat(lpszFilter, cchFilter, L"|"); } - if (StrIsNotEmpty(Settings2.FileDlgFilters)) { - StringCchCat(lpszFilter, cchFilter, Settings2.FileDlgFilters); + if (StrgIsNotEmpty(Settings2.FileDlgFilters)) { + StringCchCat(lpszFilter, cchFilter, StrgGet(Settings2.FileDlgFilters)); StringCchCat(lpszFilter, cchFilter, L"|"); } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index cfe39caf6..c2087c43b 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -671,12 +671,12 @@ typedef struct _settings2_t HSTRINGW WebTemplate2; HSTRINGW HyperlinkShellExURLWithApp; HSTRINGW HyperlinkShellExURLCmdLnArgs; + HSTRINGW FileDlgFilters; WCHAR FileChangedIndicator[4]; WCHAR FileDeletedIndicator[4]; WCHAR DefaultExtension[MINI_BUFFER]; - WCHAR FileDlgFilters[XHUGE_BUFFER]; WCHAR AppUserModelID[SMALL_BUFFER]; WCHAR AutoCompleteFillUpChars[MINI_BUFFER];