diff --git a/Build/Changes.txt b/Build/Changes.txt index fac1d8919..ff2e96adf 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -30,13 +30,13 @@ UCD - (UCD)ARDET is an Encoding Detector Library ================================================== -Current BETA Version 5.19.723.#(build) (2019-07-23) +Current BETA Version 5.19.725.#(build) (2019-07-25) ================================================== -------------------------------------------------- NEW: -------------------------------------------------- -- Add Web Template Action to context menu +- Add settings for allowed AutoComplete fill-up chars - Advanced TOML Lexer - Multiselect Edit Indicator - Color hover and picker (HTML color def only #RRGGBB) @@ -50,7 +50,6 @@ CHANGES: - Scintilla Library (SCI) version 4.2.0 (2019-Jul-5) - To force UTF-8 as preffered encoding: activate encoding detection failure fallback for default encoding - Allow Fixedsys font for GDI rendering -- Support Compiler version (VC v1921) 192127702 - VS2019 v16.1.(0-6) - Color MarkOccurrences refactoring: use System's HighLight color as default (alpha:60) - Oniguruma: support static build - Merge current (v.6.9.2) Oniguruma docs @@ -60,8 +59,9 @@ CHANGES: -------------------------------------------------- ENHANCEMENT: -------------------------------------------------- -- Use UTF-8 for themes files -- Use UTF-8 for .ini-File Handler (Initial Version) +- Complete implementation of UTF-8-Sig MinPath.ini file handler +- Use UTF-8-Sig for themes files +- Use UTF-8-Sig for .ini-File Handler (Initial Version) - Multi-Selection with selection restore on undo - Bookmark margin click - Some multi-selection enhancements @@ -69,6 +69,7 @@ ENHANCEMENT: -------------------------------------------------- FIXES: -------------------------------------------------- +- Send NewLine to sci control, if this id no AutoComplete fill-up char - Obsolete newline after .ini-file sections with comments - Enhanced Unicode detection - Oniguruma allow CRLF as newline token @@ -80,6 +81,7 @@ FIXES: -------------------------------------------------- REMOVED: -------------------------------------------------- +- Disable "NewLine" for AutoComplete fill-up - Remove (old) AHK Lexer in favour of modern AHK_L Lexer -------------------------------------------------- @@ -305,7 +307,7 @@ CHANGES: - Default ini for Notepad3Portable. - Scintilla library to v4.04. - uthash library updated to current GitHub dev. -- Encoding of Notepad3 sources to UTF-8 (Sig). +- Encoding of Notepad3 sources to UTF-8-Sig. - Focus View icon. - Prep Scintilla "Position" value type changes for large file support. - Rebases internally used code page on UTF-8 (Scintilla multi-byte conversions). @@ -884,7 +886,7 @@ Version 3.17.1210.729 (10 December 2017) - New: URL Hotspot (first version). - Changed: [Settings2] section default values (and comment out if not changed) of initially distributed Notepad3.ini - Enhancement: Code Cleanup -- Fix: Edit/Special : URL encoding/decoding for full UTF8 (non ASCII) characters. +- Fix: Edit/Special : URL encoding/decoding for full UTF-8 (non ASCII) characters. - Fix: flashing of Search text-box of find/replace dialog in case of Win7 Classic theme - Fix: Gibberish output if URL decoded again (2nd time). - Fix: URL decoding, if encoding has "%#nnn" formatted ASCII chars. @@ -954,7 +956,7 @@ Version 3.17.1124.690 (24 November 2017) - Fix: Issue regarding find/replace empty-string. - Fix: Adapt DeelX RE interface according to enhanced find/replace dialog. - Fix: Issue #173 - regex/wildcard search: replacement string not used if "Check All Occurrences" is active. -- Fix: Recoding minipath's version.h to UTF-8 (Sig), because it contains codepage dependant copyright sign. +- Fix: Recoding minipath's version.h to UTF-8-Sig, because it contains codepage dependant copyright sign. - Fix: Corrections to .vcproj settings inconsistencies (reported in release build process). - Fix: undo/redo issues (if no selection choosen). - Fix: Consecutive DEL/BACKSP undo/redo broken (wrapped by unconditional selection undo/redo). diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index 52e0be288..6773aaf75 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -39,6 +39,7 @@ SettingsVersion=4 ;WebTemplate2=https://en.wikipedia.org/w/index.php?search=%s ;ExtendedWhiteSpaceChars=: ;AutoCompleteWordCharSet= +;AutoCompleteFillUpChars= ;UpdateDelayMarkAllOccurrences=50 ;CurrentLineHorizontalSlop=40 ;CurrentLineVerticalSlop=5 @@ -94,7 +95,6 @@ SettingsVersion=4 [ANSI Art] [Apache Config Files] [Assembly Script] -[AutoHotkey Script] [AutoHotkey_L Script] [AutoIt3 Script] [AviSynth Script] diff --git a/Build/minipath.ini b/Build/minipath.ini index 930d48315..31ace7f34 100644 --- a/Build/minipath.ini +++ b/Build/minipath.ini @@ -47,10 +47,10 @@ [Window] [Filters] &All Files=*.* -&Windows Text Files=*.txt;*.asc;*.bat;*.vbs;*.ini;*.inf;*.reg -&HTML Related Files=*.htm;*.html;*.shtml;*.xml;*.php;*.css;*.js;*.vbs;*.gif;*.png;*.jpg;*.jpeg -&C/C++ Files=*.c;*.cpp;*.h;*.hpp;*.rc;*.ico;*.cur;*.bmp;*.txt -&No Binary Files=-*.exe;*.dll;*.cpl;*.ocx +&C/C++ Files=*.c;*.cpp;*.h;*.hpp;*.rc;*.ico;*.cur;*.bmp;*.txt;*.nsi;*.nsh;*.cs;*.csx;*.vala;*.cxx;*.cc;*.hxx;*.hh;*.mm;*.idl;*.midl;*.inl;*.odl;*.xpm;*.pch +&HTML Related Files=*.htm;*.html;*.shtml;*.php;*.css;*.js;*.vbs;*.gif;*.png;*.jpg;*.jpeg;*.bmp;*.txt;*.css;*.less;*.hss;*.sass;*.scss +&No Binary Files=-*.exe;*.dll;*.cpl;*.ocx;*.bin;*.com;*.sys;*.scr;*.dat;*.dsk +&Windows Text Files=*.txt;*.asc;*.bat;*.vbs;*.ini;*.inf;*.reg;*.xml;*.text;*.tmp;*.log;*.doc;*.wtx;*.csv [Toolbar Images] ;BitmapDefault= ;BitmapHot= diff --git a/CmdLnTools.sln b/CmdLnTools.sln new file mode 100644 index 000000000..4d8a2cba1 --- /dev/null +++ b/CmdLnTools.sln @@ -0,0 +1,46 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28606.126 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6E5B87EB-C468-4334-8384-E9A3F0F6FBDA}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + Build\Changes.txt = Build\Changes.txt + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64 + {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64 + {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C0B8FE68-ECBC-4173-9027-E1EC2C9B5BDF} + EndGlobalSection +EndGlobal diff --git a/Notepad3.sln b/Notepad3.sln index ccbc8a892..d573d6769 100644 --- a/Notepad3.sln +++ b/Notepad3.sln @@ -45,10 +45,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa {29AB36E1-284E-4E0B-9DF4-F4F84760BD9B} = {29AB36E1-284E-4E0B-9DF4-F4F84760BD9B} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3_de_de", "language\np3_de_de\np3_de_de.vcxproj", "{146D0122-33C6-4C1B-9E7A-178DEC80842E}" ProjectSection(ProjectDependencies) = postProject {9DC82B0D-2484-4925-92AD-1237C64CCB78} = {9DC82B0D-2484-4925-92AD-1237C64CCB78} @@ -209,8 +205,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notepad3", "Notepad3", "{C3 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniPath", "MiniPath", "{D21C1F85-6FA3-4695-82CD-DDC5690E2D66}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{F91299D3-6992-4F0E-B284-7AC9AF559512}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8FD783D5-8709-432D-A88E-6E3073AFF220}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}" @@ -262,22 +256,6 @@ Global {781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.ActiveCfg = Release|x64 {781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.Build.0 = Release|x64 {781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.Deploy.0 = Release|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.ActiveCfg = Debug|Win32 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.Build.0 = Debug|Win32 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|x64.ActiveCfg = Debug|x64 @@ -565,8 +543,6 @@ Global GlobalSection(NestedProjects) = preSolution {BAAD32AB-CD47-12FD-873C-0BBC204B7641} = {C3735E17-6EAE-4CC5-980E-30BCEF094862} {781B17E7-427F-488F-A8E9-360BA38A10F3} = {D21C1F85-6FA3-4695-82CD-DDC5690E2D66} - {0210F830-26C6-40FC-BFD1-6ED833B90830} = {F91299D3-6992-4F0E-B284-7AC9AF559512} - {12BD16A7-3BD9-4205-99B0-75E821EA7449} = {F91299D3-6992-4F0E-B284-7AC9AF559512} {146D0122-33C6-4C1B-9E7A-178DEC80842E} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} {EC255B64-2C2F-4CB6-9D40-4542893FE5E6} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} {3B8C289D-FF47-4237-AD7B-0702230F41A3} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} diff --git a/Notepad3DLL.sln b/Notepad3DLL.sln index a1784b8de..a870a3e1a 100644 --- a/Notepad3DLL.sln +++ b/Notepad3DLL.sln @@ -47,10 +47,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Scintilla", "scintilla\ScintillaDLL.vcxproj", "{5877B917-512B-49F5-B514-1B4159E7A9CA}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3_de_de", "language\np3_de_de\np3_de_de.vcxproj", "{146D0122-33C6-4C1B-9E7A-178DEC80842E}" ProjectSection(ProjectDependencies) = postProject {9DC82B0D-2484-4925-92AD-1237C64CCB78} = {9DC82B0D-2484-4925-92AD-1237C64CCB78} @@ -211,8 +207,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notepad3", "Notepad3", "{C3 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniPath", "MiniPath", "{D21C1F85-6FA3-4695-82CD-DDC5690E2D66}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{F91299D3-6992-4F0E-B284-7AC9AF559512}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8FD783D5-8709-432D-A88E-6E3073AFF220}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}" @@ -276,22 +270,6 @@ Global {5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|Win32.Build.0 = Release|Win32 {5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|x64.ActiveCfg = Release|x64 {5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|x64.Build.0 = Release|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64 - {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64 - {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.ActiveCfg = Debug|Win32 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.Build.0 = Debug|Win32 {146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|x64.ActiveCfg = Debug|x64 @@ -572,8 +550,6 @@ Global {BAAD32AB-CD47-12FD-873C-0BBC204B7641} = {C3735E17-6EAE-4CC5-980E-30BCEF094862} {781B17E7-427F-488F-A8E9-360BA38A10F3} = {D21C1F85-6FA3-4695-82CD-DDC5690E2D66} {5877B917-512B-49F5-B514-1B4159E7A9CA} = {C3735E17-6EAE-4CC5-980E-30BCEF094862} - {0210F830-26C6-40FC-BFD1-6ED833B90830} = {F91299D3-6992-4F0E-B284-7AC9AF559512} - {12BD16A7-3BD9-4205-99B0-75E821EA7449} = {F91299D3-6992-4F0E-B284-7AC9AF559512} {146D0122-33C6-4C1B-9E7A-178DEC80842E} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} {EC255B64-2C2F-4CB6-9D40-4542893FE5E6} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} {3B8C289D-FF47-4237-AD7B-0702230F41A3} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2} diff --git a/Versions/build.txt b/Versions/build.txt index 1475ea901..37bdb5cae 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2404 +2406 diff --git a/minipath/minipathDLL.vcxproj b/minipath/minipathDLL.vcxproj index 9f4fa2673..6aac33037 100644 --- a/minipath/minipathDLL.vcxproj +++ b/minipath/minipathDLL.vcxproj @@ -274,6 +274,7 @@ + @@ -282,12 +283,14 @@ + + diff --git a/minipath/minipathDLL.vcxproj.filters b/minipath/minipathDLL.vcxproj.filters index b7d5236ca..a658614f8 100644 --- a/minipath/minipathDLL.vcxproj.filters +++ b/minipath/minipathDLL.vcxproj.filters @@ -34,6 +34,9 @@ C/C++ Source Files + + C/C++ Source Files + @@ -60,6 +63,12 @@ H Source Files + + H Source Files + + + H Source Files + diff --git a/minipath/src/Config.cpp b/minipath/src/Config.cpp index 2e592fcff..ed279053b 100644 --- a/minipath/src/Config.cpp +++ b/minipath/src/Config.cpp @@ -25,62 +25,10 @@ extern "C" { } extern "C" HWND hwndMain; - extern "C" WCHAR g_wchIniFile[MAX_PATH]; extern "C" WCHAR g_wchIniFile2[MAX_PATH]; extern "C" WCHAR g_wchNP3IniFile[MAX_PATH]; -extern "C" BOOL bSaveSettings; -extern "C" WCHAR szQuickview[MAX_PATH]; -extern "C" WCHAR szQuickviewParams[MAX_PATH]; -extern "C" WCHAR g_tchFavoritesDir[MAX_PATH]; -extern "C" BOOL bNP3sFavoritesSettings; -extern "C" WCHAR tchOpenWithDir[MAX_PATH]; -extern "C" WCHAR tchToolbarButtons[512]; -extern "C" WCHAR tchToolbarBitmap[MAX_PATH]; -extern "C" WCHAR tchToolbarBitmapHot[MAX_PATH]; -extern "C" WCHAR tchToolbarBitmapDisabled[MAX_PATH]; -extern "C" BOOL bClearReadOnly; -extern "C" BOOL bRenameOnCollision; -extern "C" BOOL bSingleClick; -extern "C" BOOL bTrackSelect; -extern "C" BOOL bFullRowSelect; -extern "C" int iStartupDir; -extern "C" int iEscFunction; -extern "C" BOOL bFocusEdit; -extern "C" BOOL bAlwaysOnTop; -extern "C" BOOL g_bTransparentMode; -extern "C" BOOL bMinimizeToTray; -extern "C" BOOL fUseRecycleBin; -extern "C" BOOL fNoConfirmDelete; -extern "C" BOOL bShowToolbar; -extern "C" BOOL bShowStatusbar; -extern "C" BOOL bShowDriveBox; -extern "C" int cxGotoDlg; -extern "C" int cxOpenWithDlg; -extern "C" int cyOpenWithDlg; -extern "C" int cxCopyMoveDlg; - -extern "C" BOOL bHasQuickview; - -extern "C" WCHAR tchFilter[DL_FILTER_BUFSIZE]; -extern "C" BOOL bNegFilter; -extern "C" BOOL bDefCrNoFilt; -extern "C" BOOL bDefCrFilter; -extern "C" COLORREF crNoFilt; -extern "C" COLORREF crFilter; -extern "C" COLORREF crCustom[16]; - -extern "C" LPWSTR lpPathArg; -extern "C" LPWSTR lpFilterArg; - -extern "C" WININFO wi; - -extern "C" WCHAR szCurDir[MAX_PATH + 40]; -extern "C" DWORD dwFillMask; -extern "C" int nSortFlags; -extern "C" BOOL fSortRev; - extern "C" WCHAR g_tchPrefLngLocName[LOCALE_NAME_MAX_LENGTH + 1]; extern "C" LANGID g_iPrefLANGID; @@ -400,6 +348,43 @@ extern "C" BOOL IniFileIterateSection(LPCWSTR lpFilePath, LPCWSTR lpSectionName, + +//============================================================================= +// +// InitDefaultSettings() +// +// +void InitDefaultSettings() +{ + Defaults.szQuickview[0] = L'\0'; + Defaults.szQuickviewParams[0] = L'\0'; + Defaults.g_tchFavoritesDir[0] = L'\0'; + Defaults.tchOpenWithDir[0] = L'\0'; + Defaults.tchToolbarButtons[0] = L'\0'; + Defaults.tchToolbarBitmap[0] = L'\0'; + Defaults.tchToolbarBitmapHot[0] = L'\0'; + Defaults.tchToolbarBitmapDisabled[0] = L'\0'; + Defaults.tchFilter[0] = L'\0'; + Defaults.szCurDir[0] = L'\0'; + + // Initialize custom colors for ChooseColor() + Defaults.crCustom[0] = RGB(0, 0, 128); Defaults.crCustom[8] = RGB(255, 255, 226); + Defaults.crCustom[1] = GetSysColor(COLOR_WINDOWTEXT); Defaults.crCustom[9] = GetSysColor(COLOR_WINDOW); + Defaults.crCustom[2] = GetSysColor(COLOR_INFOTEXT); Defaults.crCustom[10] = GetSysColor(COLOR_INFOBK); + Defaults.crCustom[3] = GetSysColor(COLOR_HIGHLIGHTTEXT); Defaults.crCustom[11] = GetSysColor(COLOR_HIGHLIGHT); + Defaults.crCustom[4] = GetSysColor(COLOR_ACTIVECAPTION); Defaults.crCustom[12] = GetSysColor(COLOR_DESKTOP); + Defaults.crCustom[5] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[13] = GetSysColor(COLOR_3DFACE); + Defaults.crCustom[6] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[14] = GetSysColor(COLOR_3DFACE); + Defaults.crCustom[7] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[15] = GetSysColor(COLOR_3DFACE); + + Defaults.wi.x = CW_USEDEFAULT; + Defaults.wi.y = CW_USEDEFAULT; + Defaults.wi.cx = CW_USEDEFAULT; + Defaults.wi.cy = CW_USEDEFAULT; +} + + + //============================================================================= // // CreateIniFile() @@ -684,162 +669,129 @@ void LoadFlags() // LoadSettings() // // +extern "C" LPWSTR lpFilterArg; + +#define GET_BOOL_VALUE_FROM_INISECTION(VARNAME,KEYNAME,DEFAULT) \ + Defaults.VARNAME = DEFAULT; \ + Settings.VARNAME = IniSectionGetBool(Settings_Section, KEYNAME, Defaults.VARNAME) + +#define GET_INT_VALUE_FROM_INISECTION(VARNAME,KEYNAME,DEFAULT,MIN,MAX) \ + Defaults.VARNAME = DEFAULT; \ + Settings.VARNAME = clampi(IniSectionGetInt(Settings_Section, KEYNAME, Defaults.VARNAME),MIN,MAX) + +// ----------------------------------------------------------- + void LoadSettings() { LoadIniFile(g_wchIniFile); const WCHAR* const Settings_Section = L"Settings"; - bSaveSettings = IniSectionGetInt(Settings_Section, L"SaveSettings", 1); - if (bSaveSettings) bSaveSettings = 1; + GET_BOOL_VALUE_FROM_INISECTION(bSaveSettings, L"SaveSettings", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bSingleClick, L"SingleClick", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bTrackSelect, L"TrackSelect", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bFullRowSelect, L"FullRowSelect", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(fUseRecycleBin, L"UseRecycleBin", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(fNoConfirmDelete, L"NoConfirmDelete", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(bClearReadOnly, L"ClearReadOnly", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bRenameOnCollision, L"RenameOnCollision", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(bFocusEdit, L"FocusEdit", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bAlwaysOnTop, L"AlwaysOnTop", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(bMinimizeToTray, L"MinimizeToTray", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(g_bTransparentMode, L"TransparentMode", FALSE); + GET_INT_VALUE_FROM_INISECTION(iEscFunction, L"EscFunction", 2, 0, 2); + GET_INT_VALUE_FROM_INISECTION(iStartupDir, L"StartupDirectory", 2, 0, 2); - bSingleClick = IniSectionGetInt(Settings_Section, L"SingleClick", 1); - if (bSingleClick) bSingleClick = 1; - - bTrackSelect = IniSectionGetInt(Settings_Section, L"TrackSelect", 1); - if (bTrackSelect) bTrackSelect = 1; - - bFullRowSelect = IniSectionGetInt(Settings_Section, L"FullRowSelect", 0); - if (bFullRowSelect) bFullRowSelect = 1; - - fUseRecycleBin = IniSectionGetInt(Settings_Section, L"UseRecycleBin", 0); - if (fUseRecycleBin) fUseRecycleBin = 1; - - fNoConfirmDelete = IniSectionGetInt(Settings_Section, L"NoConfirmDelete", 0); - if (fNoConfirmDelete) fNoConfirmDelete = 1; - - bClearReadOnly = IniSectionGetInt(Settings_Section, L"ClearReadOnly", 1); - if (bClearReadOnly) bClearReadOnly = 1; - - bRenameOnCollision = IniSectionGetInt(Settings_Section, L"RenameOnCollision", 0); - if (bRenameOnCollision) bRenameOnCollision = 1; - - bFocusEdit = IniSectionGetInt(Settings_Section, L"FocusEdit", 1); - if (bFocusEdit) bFocusEdit = 1; - - bAlwaysOnTop = IniSectionGetInt(Settings_Section, L"AlwaysOnTop", 0); - if (bAlwaysOnTop) bAlwaysOnTop = 1; - - bMinimizeToTray = IniSectionGetInt(Settings_Section, L"MinimizeToTray", 0); - if (bMinimizeToTray) bMinimizeToTray = 1; - - g_bTransparentMode = IniSectionGetInt(Settings_Section, L"TransparentMode", 0); - if (g_bTransparentMode) g_bTransparentMode = 1; - - iEscFunction = IniSectionGetInt(Settings_Section, L"EscFunction", 2); - iEscFunction = max(min(iEscFunction, 2), 0); - - iStartupDir = IniSectionGetInt(Settings_Section, L"StartupDirectory", 2); - iStartupDir = max(min(iStartupDir, 2), 0); - - if (!IniSectionGetString(Settings_Section, L"Favorites", L"", - g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir))) { + Defaults.g_tchFavoritesDir[0] = L'\0'; + if (!IniSectionGetString(Settings_Section, L"Favorites", Defaults.g_tchFavoritesDir, + Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir))) { // try to fetch Favorites dir from Notepad3.ini if (StrIsNotEmpty(g_wchNP3IniFile)) { - bNP3sFavoritesSettings = TRUE; - IniFileGetString(g_wchNP3IniFile, L"Settings", L"Favorites", L"", g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir)); + Settings.bNP3sFavoritesSettings = TRUE; + IniFileGetString(g_wchNP3IniFile, L"Settings", L"Favorites", L"", Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir)); } } - if (StrIsEmpty(g_tchFavoritesDir)) - SHGetFolderPath(nullptr, CSIDL_PERSONAL, nullptr, SHGFP_TYPE_CURRENT, g_tchFavoritesDir); + if (StrIsEmpty(Settings.g_tchFavoritesDir)) + SHGetFolderPath(nullptr, CSIDL_PERSONAL, nullptr, SHGFP_TYPE_CURRENT, Settings.g_tchFavoritesDir); else - PathAbsoluteFromApp(g_tchFavoritesDir, nullptr, COUNTOF(g_tchFavoritesDir), TRUE); + PathAbsoluteFromApp(Settings.g_tchFavoritesDir, nullptr, COUNTOF(Settings.g_tchFavoritesDir), TRUE); - if (!IniSectionGetString(Settings_Section, L"Quikview.exe", L"", - szQuickview, COUNTOF(szQuickview))) { - GetSystemDirectory(szQuickview, COUNTOF(szQuickview)); - PathAddBackslash(szQuickview); - lstrcat(szQuickview, L"Viewers\\Quikview.exe"); + + Defaults.szQuickview[0] = L'\0'; + if (!IniSectionGetString(Settings_Section, L"Quikview.exe", Defaults.szQuickview, + Settings.szQuickview, COUNTOF(Settings.szQuickview))) { + GetSystemDirectory(Settings.szQuickview, COUNTOF(Settings.szQuickview)); + PathAddBackslash(Settings.szQuickview); + lstrcat(Settings.szQuickview, L"Viewers\\Quikview.exe"); } else - PathAbsoluteFromApp(szQuickview, nullptr, COUNTOF(szQuickview), TRUE); + PathAbsoluteFromApp(Settings.szQuickview, nullptr, COUNTOF(Settings.szQuickview), TRUE); - bHasQuickview = PathFileExists(szQuickview); + Settings.bHasQuickview = PathFileExists(Settings.szQuickview); - IniSectionGetString(Settings_Section, L"QuikviewParams", L"", szQuickviewParams, COUNTOF(szQuickviewParams)); + Defaults.szQuickviewParams[0] = L'\0'; + IniSectionGetString(Settings_Section, L"QuikviewParams", Defaults.szQuickviewParams, + Settings.szQuickviewParams, COUNTOF(Settings.szQuickviewParams)); - if (!IniSectionGetString(Settings_Section, L"OpenWithDir", L"", tchOpenWithDir, COUNTOF(tchOpenWithDir))) { + + lstrcpy(Defaults.tchOpenWithDir, L"%USERPROFILE%\\Desktop"); + if (IniSectionGetString(Settings_Section, L"OpenWithDir", L"", + Settings.tchOpenWithDir, COUNTOF(Settings.tchOpenWithDir)) == 0) { // try to fetch Open With dir from Notepad3.ini - IniFileGetString(g_wchNP3IniFile, L"Settings", L"OpenWithDir", L"", tchOpenWithDir, COUNTOF(tchOpenWithDir)); + IniFileGetString(g_wchNP3IniFile, L"Settings", L"OpenWithDir", L"", Settings.tchOpenWithDir, COUNTOF(Settings.tchOpenWithDir)); } - if (StrIsEmpty(tchOpenWithDir)) - SHGetSpecialFolderPath(nullptr, tchOpenWithDir, CSIDL_DESKTOPDIRECTORY, TRUE); + if (StrIsEmpty(Settings.tchOpenWithDir)) + SHGetSpecialFolderPath(nullptr, Settings.tchOpenWithDir, CSIDL_DESKTOPDIRECTORY, TRUE); else - PathAbsoluteFromApp(tchOpenWithDir, nullptr, COUNTOF(tchOpenWithDir), TRUE); + PathAbsoluteFromApp(Settings.tchOpenWithDir, nullptr, COUNTOF(Settings.tchOpenWithDir), TRUE); - dwFillMask = IniSectionGetInt(Settings_Section, L"FillMask", DL_ALLOBJECTS); - if (dwFillMask & ~DL_ALLOBJECTS) dwFillMask = DL_ALLOBJECTS; - - nSortFlags = IniSectionGetInt(Settings_Section, L"SortOptions", DS_TYPE); - nSortFlags = min(3, max(nSortFlags, 0)); - - fSortRev = IniSectionGetInt(Settings_Section, L"SortReverse", 0); - if (fSortRev) fSortRev = 1; + GET_INT_VALUE_FROM_INISECTION(dwFillMask, L"FillMask", DL_ALLOBJECTS, DL_FOLDERS, DL_ALLOBJECTS); + GET_INT_VALUE_FROM_INISECTION(nSortFlags, L"SortOptions", DS_TYPE, 0, 3); + GET_BOOL_VALUE_FROM_INISECTION(fSortRev, L"SortReverse", FALSE); + lstrcpy(Defaults.tchFilter, L"*.*"); if (!lpFilterArg) { - if (!IniSectionGetString(Settings_Section, L"FileFilter", L"", - tchFilter, COUNTOF(tchFilter))) - lstrcpy(tchFilter, L"*.*"); - - bNegFilter = IniSectionGetInt(Settings_Section, L"NegativeFilter", 0); - if (bNegFilter) bNegFilter = 1; + IniSectionGetString(Settings_Section, L"FileFilter", Defaults.tchFilter, Settings.tchFilter, COUNTOF(Settings.tchFilter)); } - else { // ignore filter if /m was specified - if (*lpFilterArg == L'-') { - bNegFilter = TRUE; - lstrcpyn(tchFilter, lpFilterArg + 1, COUNTOF(tchFilter)); + if (*(lpFilterArg) == L'-') { + Settings.bNegFilter = TRUE; + (void)lstrcpyn(Settings.tchFilter, lpFilterArg + 1, COUNTOF(Settings.tchFilter)); } else { - bNegFilter = FALSE; - lstrcpyn(tchFilter, lpFilterArg, COUNTOF(tchFilter)); + Settings.bNegFilter = FALSE; + (void)lstrcpyn(Settings.tchFilter, lpFilterArg, COUNTOF(Settings.tchFilter)); } } + GET_BOOL_VALUE_FROM_INISECTION(bNegFilter, L"NegativeFilter", FALSE); + GET_BOOL_VALUE_FROM_INISECTION(bDefCrNoFilt, L"DefColorNoFilter", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bDefCrFilter, L"DefColorFilter", TRUE); + GET_INT_VALUE_FROM_INISECTION(crNoFilt, L"ColorNoFilter", GetSysColor(COLOR_WINDOWTEXT), 0, INT_MAX); + GET_INT_VALUE_FROM_INISECTION(crFilter, L"ColorFilter", GetSysColor(COLOR_HIGHLIGHT), 0, INT_MAX); - bDefCrNoFilt = IniSectionGetInt(Settings_Section, L"DefColorNoFilter", 1); - if (bDefCrNoFilt) bDefCrNoFilt = 1; - bDefCrFilter = IniSectionGetInt(Settings_Section, L"DefColorFilter", 1); - if (bDefCrFilter) bDefCrFilter = 1; - - crNoFilt = IniSectionGetInt(Settings_Section, L"ColorNoFilter", GetSysColor(COLOR_WINDOWTEXT)); - crFilter = IniSectionGetInt(Settings_Section, L"ColorFilter", GetSysColor(COLOR_HIGHLIGHT)); - - if (IniSectionGetString(Settings_Section, L"ToolbarButtons", L"", tchToolbarButtons, COUNTOF(tchToolbarButtons)) == 0) { - lstrcpy(tchToolbarButtons, L"1 2 3 4 5 0 8"); + lstrcpy(Defaults.tchToolbarButtons, L"1 2 3 4 5 0 8"); + if (IniSectionGetString(Settings_Section, L"ToolbarButtons", Defaults.tchToolbarButtons, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons)) == 0) { + lstrcpy(Settings.tchToolbarButtons, Defaults.tchToolbarButtons); } - bShowToolbar = IniSectionGetInt(Settings_Section, L"ShowToolbar", 1); - if (bShowToolbar) bShowToolbar = 1; - bShowStatusbar = IniSectionGetInt(Settings_Section, L"ShowStatusbar", 1); - if (bShowStatusbar) bShowStatusbar = 1; + GET_BOOL_VALUE_FROM_INISECTION(bShowToolbar, L"ShowToolbar", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bShowStatusbar, L"ShowStatusbar", TRUE); + GET_BOOL_VALUE_FROM_INISECTION(bShowDriveBox, L"ShowDriveBox", TRUE); + GET_INT_VALUE_FROM_INISECTION(cxGotoDlg, L"GotoDlgSizeX", 0, 0, INT_MAX); + GET_INT_VALUE_FROM_INISECTION(cxOpenWithDlg, L"OpenWithDlgSizeX", 0, 0, INT_MAX); + GET_INT_VALUE_FROM_INISECTION(cyOpenWithDlg, L"OpenWithDlgSizeY", 0, 0, INT_MAX); + GET_INT_VALUE_FROM_INISECTION(cxCopyMoveDlg, L"CopyMoveDlgSizeX", 0, 0, INT_MAX); - bShowDriveBox = IniSectionGetInt(Settings_Section, L"ShowDriveBox", 1); - if (bShowDriveBox) bShowDriveBox = 1; - - cxGotoDlg = IniSectionGetInt(Settings_Section, L"GotoDlgSizeX", 0); - cxGotoDlg = max(cxGotoDlg, 0); - - cxOpenWithDlg = IniSectionGetInt(Settings_Section, L"OpenWithDlgSizeX", 0); - cxOpenWithDlg = max(cxOpenWithDlg, 0); - - cyOpenWithDlg = IniSectionGetInt(Settings_Section, L"OpenWithDlgSizeY", 0); - cyOpenWithDlg = max(cyOpenWithDlg, 0); - - cxCopyMoveDlg = IniSectionGetInt(Settings_Section, L"CopyMoveDlgSizeX", 0); - cxCopyMoveDlg = max(cxCopyMoveDlg, 0); + // -------------------------------------------------------------------------- int ResX = GetSystemMetrics(SM_CXSCREEN); int ResY = GetSystemMetrics(SM_CYSCREEN); - const WCHAR* const ToolbarImages_Section = L"Toolbar Images"; - IniSectionGetString(ToolbarImages_Section, L"BitmapDefault", L"", - tchToolbarBitmap, COUNTOF(tchToolbarBitmap)); - IniSectionGetString(ToolbarImages_Section, L"BitmapHot", L"", - tchToolbarBitmapHot, COUNTOF(tchToolbarBitmap)); - IniSectionGetString(ToolbarImages_Section, L"BitmapDisabled", L"", - tchToolbarBitmapDisabled, COUNTOF(tchToolbarBitmap)); + IniSectionGetString(ToolbarImages_Section, L"BitmapDefault", L"", Settings.tchToolbarBitmap, COUNTOF(Settings.tchToolbarBitmap)); + IniSectionGetString(ToolbarImages_Section, L"BitmapHot", L"", Settings.tchToolbarBitmapHot, COUNTOF(Settings.tchToolbarBitmap)); + IniSectionGetString(ToolbarImages_Section, L"BitmapDisabled", L"", Settings.tchToolbarBitmapDisabled, COUNTOF(Settings.tchToolbarBitmap)); if (!flagPosParam) { // ignore window position if /p was specified @@ -852,31 +804,45 @@ void LoadSettings() const WCHAR* const Window_Section = L"Window"; - wi.x = IniSectionGetInt(Window_Section, tchPosX, CW_USEDEFAULT); - wi.y = IniSectionGetInt(Window_Section, tchPosY, CW_USEDEFAULT); - wi.cx = IniSectionGetInt(Window_Section, tchSizeX, CW_USEDEFAULT); - wi.cy = IniSectionGetInt(Window_Section, tchSizeY, CW_USEDEFAULT); + Settings.wi.x = IniSectionGetInt(Window_Section, tchPosX, Defaults.wi.x); + Settings.wi.y = IniSectionGetInt(Window_Section, tchPosY, Defaults.wi.y); + Settings.wi.cx = IniSectionGetInt(Window_Section, tchSizeX, Defaults.wi.cx); + Settings.wi.cy = IniSectionGetInt(Window_Section, tchSizeY, Defaults.wi.cy); } - // Initialize custom colors for ChooseColor() - crCustom[0] = RGB(0, 0, 128); crCustom[8] = RGB(255, 255, 226); - crCustom[1] = GetSysColor(COLOR_WINDOWTEXT); crCustom[9] = GetSysColor(COLOR_WINDOW); - crCustom[2] = GetSysColor(COLOR_INFOTEXT); crCustom[10] = GetSysColor(COLOR_INFOBK); - crCustom[3] = GetSysColor(COLOR_HIGHLIGHTTEXT); crCustom[11] = GetSysColor(COLOR_HIGHLIGHT); - crCustom[4] = GetSysColor(COLOR_ACTIVECAPTION); crCustom[12] = GetSysColor(COLOR_DESKTOP); - crCustom[5] = GetSysColor(COLOR_3DFACE); crCustom[13] = GetSysColor(COLOR_3DFACE); - crCustom[6] = GetSysColor(COLOR_3DFACE); crCustom[14] = GetSysColor(COLOR_3DFACE); - crCustom[7] = GetSysColor(COLOR_3DFACE); crCustom[15] = GetSysColor(COLOR_3DFACE); - + for (int i = 0; i < COUNTOF(Settings.crCustom); ++i) { + Settings.crCustom[i] = Defaults.crCustom[i]; + } + ReleaseIniFile(); } + //============================================================================= // // SaveSettings() // // + +#define SAVE_VALUE_IF_NOT_EQ_DEFAULT(TYPE,KEYNAME,VARNAME) \ + if (Settings.VARNAME != Defaults.VARNAME) { \ + IniSectionSet##TYPE(Settings_Section, KEYNAME, Settings.VARNAME); \ + } \ + else { \ + IniSectionDelete(Settings_Section, KEYNAME, false); \ + } + +#define SAVE_STRING_IF_NOT_EQ_DEFAULT(KEYNAME,VARNAME) \ + if (lstrcmp(Settings.VARNAME, Defaults.VARNAME) != 0) { \ + IniSectionSetString(Settings_Section, KEYNAME, Settings.VARNAME); \ + } \ + else { \ + IniSectionDelete(Settings_Section, KEYNAME, false); \ + } + +// ---------------------------------------------------------------------------- + void SaveSettings(BOOL bSaveSettingsNow) { WCHAR wchTmp[MAX_PATH]; @@ -885,11 +851,11 @@ void SaveSettings(BOOL bSaveSettingsNow) CreateIniFile(); - if (!bSaveSettings && !bSaveSettingsNow) { - if (iStartupDir == 1) { - IniFileSetString(g_wchIniFile, L"Settings", L"MRUDirectory", szCurDir); + if (!Settings.bSaveSettings && !bSaveSettingsNow) { + if (Settings.iStartupDir == 1) { + IniFileSetString(g_wchIniFile, L"Settings", L"MRUDirectory", Settings.szCurDir); } - IniFileSetBool(g_wchIniFile, L"Settings", L"SaveSettings", bSaveSettings); + IniFileSetBool(g_wchIniFile, L"Settings", L"SaveSettings", Settings.bSaveSettings); return; } @@ -897,49 +863,59 @@ void SaveSettings(BOOL bSaveSettingsNow) const WCHAR* const Settings_Section = L"Settings"; - IniSectionSetInt(Settings_Section, L"SaveSettings", bSaveSettings); - IniSectionSetInt(Settings_Section, L"SingleClick", bSingleClick); - IniSectionSetInt(Settings_Section, L"TrackSelect", bTrackSelect); - IniSectionSetInt(Settings_Section, L"FullRowSelect", bFullRowSelect); - IniSectionSetInt(Settings_Section, L"UseRecycleBin", fUseRecycleBin); - IniSectionSetInt(Settings_Section, L"NoConfirmDelete", fNoConfirmDelete); - IniSectionSetInt(Settings_Section, L"ClearReadOnly", bClearReadOnly); - IniSectionSetInt(Settings_Section, L"RenameOnCollision", bRenameOnCollision); - IniSectionSetInt(Settings_Section, L"FocusEdit", bFocusEdit); - IniSectionSetInt(Settings_Section, L"AlwaysOnTop", bAlwaysOnTop); - IniSectionSetInt(Settings_Section, L"MinimizeToTray", bMinimizeToTray); - IniSectionSetInt(Settings_Section, L"TransparentMode", g_bTransparentMode); - IniSectionSetInt(Settings_Section, L"EscFunction", iEscFunction); - IniSectionSetInt(Settings_Section, L"StartupDirectory", iStartupDir); - if (iStartupDir == 1) { - IniSectionSetString(Settings_Section, L"MRUDirectory", szCurDir); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SaveSettings", bSaveSettings); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SingleClick", bSingleClick); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"TrackSelect", bTrackSelect); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"FullRowSelect", bFullRowSelect); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"UseRecycleBin", fUseRecycleBin); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"NoConfirmDelete", fNoConfirmDelete); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ClearReadOnly", bClearReadOnly); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"RenameOnCollision", bRenameOnCollision); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"FocusEdit", bFocusEdit); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"AlwaysOnTop", bAlwaysOnTop); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"MinimizeToTray", bMinimizeToTray); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"TransparentMode", g_bTransparentMode); + + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"EscFunction", iEscFunction); + + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"StartupDirectory", iStartupDir); + if (Settings.iStartupDir == 1) { + IniSectionSetString(Settings_Section, L"MRUDirectory", Settings.szCurDir); } - if (!bNP3sFavoritesSettings) { - PathRelativeToApp(g_tchFavoritesDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); + if (!Settings.bNP3sFavoritesSettings) { + PathRelativeToApp(Settings.g_tchFavoritesDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); IniSectionSetString(Settings_Section, L"Favorites", wchTmp); } - PathRelativeToApp(szQuickview, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); + + PathRelativeToApp(Settings.szQuickview, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); IniSectionSetString(Settings_Section, L"Quikview.exe", wchTmp); - IniSectionSetString(Settings_Section, L"QuikviewParams", szQuickviewParams); - PathRelativeToApp(tchOpenWithDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); - IniSectionSetString(Settings_Section, L"OpenWithDir", wchTmp); - IniSectionSetInt(Settings_Section, L"FillMask", dwFillMask); - IniSectionSetInt(Settings_Section, L"SortOptions", nSortFlags); - IniSectionSetInt(Settings_Section, L"SortReverse", fSortRev); - IniSectionSetString(Settings_Section, L"FileFilter", tchFilter); - IniSectionSetInt(Settings_Section, L"NegativeFilter", bNegFilter); - IniSectionSetInt(Settings_Section, L"DefColorNoFilter", bDefCrNoFilt); - IniSectionSetInt(Settings_Section, L"DefColorFilter", bDefCrFilter); - IniSectionSetInt(Settings_Section, L"ColorNoFilter", crNoFilt); - IniSectionSetInt(Settings_Section, L"ColorFilter", crFilter); - IniSectionSetString(Settings_Section, L"ToolbarButtons", tchToolbarButtons); - IniSectionSetInt(Settings_Section, L"ShowToolbar", bShowToolbar); - IniSectionSetInt(Settings_Section, L"ShowStatusbar", bShowStatusbar); - IniSectionSetInt(Settings_Section, L"ShowDriveBox", bShowDriveBox); - IniSectionSetInt(Settings_Section, L"GotoDlgSizeX", cxGotoDlg); - IniSectionSetInt(Settings_Section, L"OpenWithDlgSizeX", cxOpenWithDlg); - IniSectionSetInt(Settings_Section, L"OpenWithDlgSizeY", cyOpenWithDlg); - IniSectionSetInt(Settings_Section, L"CopyMoveDlgSizeX", cxCopyMoveDlg); + SAVE_STRING_IF_NOT_EQ_DEFAULT(L"Quikview.exe", szQuickviewParams); + + PathRelativeToApp(Settings.tchOpenWithDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs); + if (lstrcmp(wchTmp, Defaults.tchOpenWithDir) != 0) { + IniSectionSetString(Settings_Section, L"OpenWithDir", wchTmp); + } + + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"FillMask", dwFillMask); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"SortOptions", nSortFlags); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SortReverse", fSortRev); + SAVE_STRING_IF_NOT_EQ_DEFAULT(L"FileFilter", tchFilter); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"NegativeFilter", bNegFilter); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"DefColorNoFilter", bDefCrNoFilt); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"DefColorFilter", bDefCrFilter); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"ColorNoFilter", crNoFilt); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"ColorFilter", crFilter); + SAVE_STRING_IF_NOT_EQ_DEFAULT(L"ToolbarButtons", tchToolbarButtons); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowToolbar", bShowToolbar); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowStatusbar", bShowStatusbar); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowDriveBox", bShowDriveBox); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"GotoDlgSizeX", cxGotoDlg); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"OpenWithDlgSizeX", cxOpenWithDlg); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"OpenWithDlgSizeY", cyOpenWithDlg); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"CopyMoveDlgSizeX", cxCopyMoveDlg); + + // cleanup + IniSectionDelete(Settings_Section, L"WriteTest", FALSE); /* SaveSettingsNow(): query Window Dimensions @@ -948,15 +924,15 @@ void SaveSettings(BOOL bSaveSettingsNow) if (bSaveSettingsNow) { WINDOWPLACEMENT wndpl; - + ZeroMemory(&wndpl, sizeof(WINDOWPLACEMENT)); // GetWindowPlacement wndpl.length = sizeof(WINDOWPLACEMENT); GetWindowPlacement(hwndMain, &wndpl); - wi.x = wndpl.rcNormalPosition.left; - wi.y = wndpl.rcNormalPosition.top; - wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left; - wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top; + Settings.wi.x = wndpl.rcNormalPosition.left; + Settings.wi.y = wndpl.rcNormalPosition.top; + Settings.wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left; + Settings.wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top; } WCHAR tchPosX[32], tchPosY[32], tchSizeX[32], tchSizeY[32], tchMaximized[32]; @@ -970,10 +946,10 @@ void SaveSettings(BOOL bSaveSettingsNow) const WCHAR* const Windows_Section = L"Window"; - IniSectionSetInt(Windows_Section, tchPosX, wi.x); - IniSectionSetInt(Windows_Section, tchPosY, wi.y); - IniSectionSetInt(Windows_Section, tchSizeX, wi.cx); - IniSectionSetInt(Windows_Section, tchSizeY, wi.cy); + IniSectionSetInt(Windows_Section, tchPosX, Settings.wi.x); + IniSectionSetInt(Windows_Section, tchPosY, Settings.wi.y); + IniSectionSetInt(Windows_Section, tchSizeX, Settings.wi.cx); + IniSectionSetInt(Windows_Section, tchSizeY, Settings.wi.cy); SaveIniFile(g_wchIniFile); } diff --git a/minipath/src/Config.h b/minipath/src/Config.h index 2f0df71ca..767a1301a 100644 --- a/minipath/src/Config.h +++ b/minipath/src/Config.h @@ -24,6 +24,7 @@ extern "C" { //==== Ini-File Handling ============================================= + void InitDefaultSettings(); void LoadSettings(); void SaveSettings(BOOL); void LoadFlags(); diff --git a/minipath/src/Dialogs.c b/minipath/src/Dialogs.c index f07e5acd1..e4c1e3023 100644 --- a/minipath/src/Dialogs.c +++ b/minipath/src/Dialogs.c @@ -41,9 +41,9 @@ // // L"Title\nMessage Text" // -extern HWND hwndMain; -extern LANGID g_iPrefLANGID; -extern HICON g_hDlgIcon; +extern HWND hwndMain; +extern HICON g_hDlgIcon; +extern LANGID g_iPrefLANGID; int ErrorMessage(int iLevel, UINT uIdMsg, ...) @@ -57,7 +57,7 @@ int ErrorMessage(int iLevel, UINT uIdMsg, ...) return(0); //int t = wvsprintf(szTitle,szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1)); - int t = vswprintf_s(szTitle,COUNTOF(szTitle),szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1)); + int const t = clampi(vswprintf_s(szTitle,COUNTOF(szTitle),szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1)), 0, 1023); szTitle[t] = L'\0'; WCHAR* c = StrChr(szTitle,L'\n'); @@ -180,8 +180,6 @@ BOOL GetDirectory2(HWND hwndParent,int iTitle,LPWSTR pszFolder,int iBase) } -extern WCHAR szCurDir[MAX_PATH + 40]; - //============================================================================= // // RunDlgProc() @@ -316,7 +314,7 @@ INT_PTR CALLBACK RunDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) sei.lpVerb = NULL; sei.lpFile = arg1; sei.lpParameters = arg2; - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; if (ShellExecuteEx(&sei)) @@ -363,8 +361,8 @@ INT_PTR RunDlg(HWND hwnd) // GotoDlgProc() // // -extern HISTORY mHistory; -extern int cxGotoDlg; + +extern HISTORY g_mHistory; INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -390,9 +388,9 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) mmiPtMinX = rc.right-rc.left; mmiPtMaxY = rc.bottom-rc.top; - if (cxGotoDlg < (rc.right-rc.left)) - cxGotoDlg = rc.right-rc.left; - SetWindowPos(hwnd,NULL,rc.left,rc.top,cxGotoDlg,rc.bottom-rc.top,SWP_NOZORDER); + if (Settings.cxGotoDlg < (rc.right-rc.left)) + Settings.cxGotoDlg = rc.right-rc.left; + SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxGotoDlg,rc.bottom-rc.top,SWP_NOZORDER); SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME); SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); @@ -414,13 +412,13 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) SendDlgItemMessage(hwnd,IDC_GOTO,CB_SETEXTENDEDUI,TRUE,0); for (int i = 0; i < HISTORY_ITEMS; i++) { - if (mHistory.psz[i]) { + if (g_mHistory.psz[i]) { int iItem = (int)SendDlgItemMessage(hwnd,IDC_GOTO, - CB_FINDSTRINGEXACT,(WPARAM)-1,(LPARAM)mHistory.psz[i]); + CB_FINDSTRINGEXACT,(WPARAM)-1,(LPARAM)g_mHistory.psz[i]); if (iItem != LB_ERR) SendDlgItemMessage(hwnd,IDC_GOTO,CB_DELETESTRING,iItem,0); SendDlgItemMessage(hwnd,IDC_GOTO,CB_INSERTSTRING,0, - (LPARAM)mHistory.psz[i]); + (LPARAM)g_mHistory.psz[i]); } } @@ -438,7 +436,7 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { RECT rc; GetWindowRect(hwnd,&rc); - cxGotoDlg = rc.right-rc.left; + Settings.cxGotoDlg = rc.right-rc.left; } return FALSE; @@ -647,23 +645,6 @@ INT_PTR CALLBACK AboutDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) // // extern WCHAR g_wchIniFile[MAX_PATH]; -extern BOOL bSaveSettings; -extern WCHAR szQuickview[MAX_PATH]; -extern WCHAR szQuickviewParams[MAX_PATH]; -extern WCHAR g_tchFavoritesDir[MAX_PATH]; -extern BOOL bNP3sFavoritesSettings; -extern BOOL bClearReadOnly; -extern BOOL bRenameOnCollision; -extern BOOL bSingleClick; -extern BOOL bTrackSelect; -extern BOOL bFullRowSelect; -extern BOOL bFocusEdit; -extern BOOL bAlwaysOnTop; -extern BOOL bMinimizeToTray; -extern BOOL fUseRecycleBin; -extern BOOL fNoConfirmDelete; -extern int iStartupDir; -extern int iEscFunction; INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -676,28 +657,28 @@ INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); } if (StrIsNotEmpty(g_wchIniFile)) { - if (bSaveSettings) + if (Settings.bSaveSettings) CheckDlgButton(hwnd,IDC_SAVESETTINGS,BST_CHECKED); } else EnableWindow(GetDlgItem(hwnd,IDC_SAVESETTINGS),FALSE); - if (bSingleClick) + if (Settings.bSingleClick) CheckDlgButton(hwnd,IDC_SINGLECLICK,BST_CHECKED); - if (bTrackSelect) + if (Settings.bTrackSelect) CheckDlgButton(hwnd,IDC_TRACKSELECT,BST_CHECKED); - if (bFullRowSelect) + if (Settings.bFullRowSelect) CheckDlgButton(hwnd,IDC_FULLROWSELECT,BST_CHECKED); - if (bFocusEdit) + if (Settings.bFocusEdit) CheckDlgButton(hwnd,IDC_FOCUSEDIT,BST_CHECKED); - if (bAlwaysOnTop) + if (Settings.bAlwaysOnTop) CheckDlgButton(hwnd,IDC_ALWAYSONTOP,BST_CHECKED); - if (bMinimizeToTray) + if (Settings.bMinimizeToTray) CheckDlgButton(hwnd,IDC_MINIMIZETOTRAY,BST_CHECKED); if (IniFileGetInt(g_wchIniFile, L"Settings2", L"ReuseWindow", 1)) { @@ -715,40 +696,40 @@ INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam if (IsWindowEnabled(GetDlgItem(hwnd,IDC_SAVESETTINGS))) { if (IsDlgButtonChecked(hwnd,IDC_SAVESETTINGS)) - bSaveSettings = 1; + Settings.bSaveSettings = 1; else - bSaveSettings = 0; + Settings.bSaveSettings = 0; } if (IsDlgButtonChecked(hwnd,IDC_SINGLECLICK)) - bSingleClick = 1; + Settings.bSingleClick = 1; else - bSingleClick = 0; + Settings.bSingleClick = 0; if (IsDlgButtonChecked(hwnd,IDC_TRACKSELECT)) - bTrackSelect = 1; + Settings.bTrackSelect = 1; else - bTrackSelect = 0; + Settings.bTrackSelect = 0; if (IsDlgButtonChecked(hwnd,IDC_FULLROWSELECT)) - bFullRowSelect = 1; + Settings.bFullRowSelect = 1; else - bFullRowSelect = 0; + Settings.bFullRowSelect = 0; if (IsDlgButtonChecked(hwnd,IDC_FOCUSEDIT)) - bFocusEdit = 1; + Settings.bFocusEdit = 1; else - bFocusEdit = 0; + Settings.bFocusEdit = 0; if (IsDlgButtonChecked(hwnd,IDC_ALWAYSONTOP)) - bAlwaysOnTop = 1; + Settings.bAlwaysOnTop = 1; else - bAlwaysOnTop = 0; + Settings.bAlwaysOnTop = 0; if (IsDlgButtonChecked(hwnd,IDC_MINIMIZETOTRAY)) - bMinimizeToTray = 1; + Settings.bMinimizeToTray = 1; else - bMinimizeToTray = 0; + Settings.bMinimizeToTray = 0; int const rw = IsDlgButtonChecked(hwnd, IDC_REUSEWINDOW) ? 1 : 0; IniFileSetInt(g_wchIniFile, L"Settings2", L"ReuseWindow", rw); @@ -782,22 +763,22 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); } - if (bClearReadOnly) + if (Settings.bClearReadOnly) CheckDlgButton(hwnd,IDC_CLEARREADONLY,BST_CHECKED); - if (bRenameOnCollision) + if (Settings.bRenameOnCollision) CheckDlgButton(hwnd,IDC_RENAMEONCOLLISION,BST_CHECKED); - if (fUseRecycleBin) + if (Settings.fUseRecycleBin) CheckDlgButton(hwnd,IDC_USERECYCLEBIN,BST_CHECKED); - if (fNoConfirmDelete) + if (Settings.fNoConfirmDelete) CheckDlgButton(hwnd,IDC_NOCONFIRMDELETE,BST_CHECKED); - if (iStartupDir) + if (Settings.iStartupDir) { CheckDlgButton(hwnd,IDC_STARTUPDIR,BST_CHECKED); - if (iStartupDir == 1) + if (Settings.iStartupDir == 1) CheckRadioButton(hwnd,IDC_GOTOMRU,IDC_GOTOFAV,IDC_GOTOMRU); else CheckRadioButton(hwnd,IDC_GOTOMRU,IDC_GOTOFAV,IDC_GOTOFAV); @@ -809,10 +790,10 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara EnableWindow(GetDlgItem(hwnd,IDC_GOTOFAV),FALSE); } - if (iEscFunction) + if (Settings.iEscFunction) { CheckDlgButton(hwnd,IDC_ESCFUNCTION,BST_CHECKED); - if (iEscFunction == 1) + if (Settings.iEscFunction == 1) CheckRadioButton(hwnd,IDC_ESCMIN,IDC_ESCEXIT,IDC_ESCMIN); else CheckRadioButton(hwnd,IDC_ESCMIN,IDC_ESCEXIT,IDC_ESCEXIT); @@ -868,42 +849,42 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara case PSN_APPLY: if (IsDlgButtonChecked(hwnd,IDC_CLEARREADONLY)) - bClearReadOnly = 1; + Settings.bClearReadOnly = 1; else - bClearReadOnly = 0; + Settings.bClearReadOnly = 0; if (IsDlgButtonChecked(hwnd,IDC_RENAMEONCOLLISION)) - bRenameOnCollision = 1; + Settings.bRenameOnCollision = 1; else - bRenameOnCollision = 0; + Settings.bRenameOnCollision = 0; if (IsDlgButtonChecked(hwnd,IDC_USERECYCLEBIN)) - fUseRecycleBin = 1; + Settings.fUseRecycleBin = 1; else - fUseRecycleBin = 0; + Settings.fUseRecycleBin = 0; if (IsDlgButtonChecked(hwnd,IDC_NOCONFIRMDELETE)) - fNoConfirmDelete = 1; + Settings.fNoConfirmDelete = 1; else - fNoConfirmDelete = 0; + Settings.fNoConfirmDelete = 0; if (IsDlgButtonChecked(hwnd,IDC_STARTUPDIR)) { if (IsDlgButtonChecked(hwnd,IDC_GOTOMRU)) - iStartupDir = 1; + Settings.iStartupDir = 1; else - iStartupDir = 2; + Settings.iStartupDir = 2; } else - iStartupDir = 0; + Settings.iStartupDir = 0; if (IsDlgButtonChecked(hwnd,IDC_ESCFUNCTION)) { if (IsDlgButtonChecked(hwnd,IDC_ESCMIN)) - iEscFunction = 1; + Settings.iEscFunction = 1; else - iEscFunction = 2; + Settings.iEscFunction = 2; } else - iEscFunction = 0; + Settings.iEscFunction = 0; SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR); @@ -923,11 +904,6 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara // ItemsPageProc // // -extern BOOL bDefCrNoFilt; -extern BOOL bDefCrFilter; -extern COLORREF crNoFilt; -extern COLORREF crFilter; -extern COLORREF crCustom[16]; INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -950,11 +926,11 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); } - m_bDefCrNoFilt = bDefCrNoFilt; - m_bDefCrFilter = bDefCrFilter; + m_bDefCrNoFilt = Settings.bDefCrNoFilt; + m_bDefCrFilter = Settings.bDefCrFilter; - m_crNoFilt = crNoFilt; - m_crFilter = crFilter; + m_crNoFilt = Settings.crNoFilt; + m_crFilter = Settings.crFilter; m_hbrNoFilt = CreateSolidBrush(m_crNoFilt); m_hbrFilter = CreateSolidBrush(m_crFilter); @@ -1024,7 +1000,7 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) cc.lStructSize = sizeof(CHOOSECOLOR); cc.hwndOwner = hwnd; cc.rgbResult = m_crNoFilt; - cc.lpCustColors = crCustom; + cc.lpCustColors = Settings.crCustom; cc.Flags = CC_RGBINIT | CC_SOLIDCOLOR; if (ChooseColor(&cc)) { @@ -1042,7 +1018,7 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) cc.lStructSize = sizeof(CHOOSECOLOR); cc.hwndOwner = hwnd; cc.rgbResult = m_crFilter; - cc.lpCustColors = crCustom; + cc.lpCustColors = Settings.crCustom; cc.Flags = CC_RGBINIT | CC_SOLIDCOLOR; if (ChooseColor(&cc)) { @@ -1065,11 +1041,11 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) case PSN_APPLY: - bDefCrNoFilt = m_bDefCrNoFilt; - bDefCrFilter = m_bDefCrFilter; + Settings.bDefCrNoFilt = m_bDefCrNoFilt; + Settings.bDefCrFilter = m_bDefCrFilter; - crNoFilt = m_crNoFilt; - crFilter = m_crFilter; + Settings.crNoFilt = m_crNoFilt; + Settings.crFilter = m_crFilter; SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR); @@ -1116,18 +1092,18 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) MakeBitmapButton(hwnd,IDC_BROWSE_Q,g_hInstance,IDB_OPEN); MakeBitmapButton(hwnd,IDC_BROWSE_F,g_hInstance,IDB_OPEN); - lstrcpy(tch,szQuickview); + lstrcpy(tch, Settings.szQuickview); PathQuoteSpaces(tch); - if (StrIsNotEmpty(szQuickviewParams)) { + if (StrIsNotEmpty(Settings.szQuickviewParams)) { StrCatBuff(tch,L" ",COUNTOF(tch)); - StrCatBuff(tch,szQuickviewParams,COUNTOF(tch)); + StrCatBuff(tch, Settings.szQuickviewParams,COUNTOF(tch)); } SendDlgItemMessage(hwnd,IDC_QUICKVIEW,EM_LIMITTEXT,MAX_PATH - 2,0); SetDlgItemText(hwnd,IDC_QUICKVIEW,tch); SHAutoComplete(GetDlgItem(hwnd,IDC_QUICKVIEW),SHACF_FILESYSTEM); SendDlgItemMessage(hwnd,IDC_FAVORITES,EM_LIMITTEXT,MAX_PATH - 2,0); - SetDlgItemText(hwnd,IDC_FAVORITES,g_tchFavoritesDir); + SetDlgItemText(hwnd,IDC_FAVORITES, Settings.g_tchFavoritesDir); SHAutoComplete(GetDlgItem(hwnd,IDC_FAVORITES),SHACF_FILESYSTEM); } return TRUE; @@ -1215,23 +1191,23 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) if (!GetDlgItemText(hwnd,IDC_QUICKVIEW,tch,MAX_PATH)) { - GetSystemDirectory(szQuickview,MAX_PATH); - PathAddBackslash(szQuickview); - lstrcat(szQuickview,L"Viewers\\Quikview.exe"); - PathQuoteSpaces(szQuickview); - lstrcpy(szQuickviewParams,L""); + GetSystemDirectory(Settings.szQuickview,MAX_PATH); + PathAddBackslash(Settings.szQuickview); + lstrcat(Settings.szQuickview,L"Viewers\\Quikview.exe"); + PathQuoteSpaces(Settings.szQuickview); + lstrcpy(Settings.szQuickviewParams,L""); } else - ExtractFirstArgument(tch,szQuickview,szQuickviewParams); + ExtractFirstArgument(tch, Settings.szQuickview, Settings.szQuickviewParams); - lstrcpy(tch, g_tchFavoritesDir); - if (!GetDlgItemText(hwnd, IDC_FAVORITES, g_tchFavoritesDir, MAX_PATH)) { - GetDefaultFavoritesDir(g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir)); + lstrcpy(tch, Settings.g_tchFavoritesDir); + if (!GetDlgItemText(hwnd, IDC_FAVORITES, Settings.g_tchFavoritesDir, MAX_PATH)) { + GetDefaultFavoritesDir(Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir)); } else - StrTrim(g_tchFavoritesDir,L" \""); + StrTrim(Settings.g_tchFavoritesDir,L" \""); - if (lstrcmpi(tch, g_tchFavoritesDir) != 0) { bNP3sFavoritesSettings = FALSE; } + if (lstrcmpi(tch, Settings.g_tchFavoritesDir) != 0) { Settings.bNP3sFavoritesSettings = FALSE; } SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR); @@ -1249,10 +1225,6 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) // // extern HWND hwndStatus; -extern int nIdFocus; - -extern WCHAR tchFilter[DL_FILTER_BUFSIZE]; -extern BOOL bNegFilter; INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance) { @@ -1306,12 +1278,12 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance) // Apply the results if (nResult) { - if (bAlwaysOnTop) + if (Settings.bAlwaysOnTop) SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); else SetWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); - if (bTrackSelect) + if (Settings.bTrackSelect) ListView_SetExtendedListViewStyleEx(hwndDirList, LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE, LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE); @@ -1319,7 +1291,7 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance) ListView_SetExtendedListViewStyleEx(hwndDirList, LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE,0); - if (bFullRowSelect) { + if (Settings.bFullRowSelect) { ListView_SetExtendedListViewStyleEx(hwndDirList, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); @@ -1333,12 +1305,12 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance) SetTheme(hwndDirList,L"Listview"); } - if (lstrcmp(tchFilter,L"*.*") || bNegFilter) { - ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter); + if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) { + ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter); ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1); } else { - ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt); + ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt); ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1); } @@ -1352,8 +1324,6 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance) // GetFilterDlgProc() // // -extern WCHAR tchFilter[DL_FILTER_BUFSIZE]; -extern BOOL bNegFilter; static HWND s_hWnd = NULL; static HMENU s_hMenu = NULL; @@ -1389,10 +1359,10 @@ INT_PTR CALLBACK GetFilterDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara MakeBitmapButton(hwnd,IDC_BROWSEFILTER,NULL,OBM_COMBO); - SendDlgItemMessage(hwnd,IDC_FILTER,EM_LIMITTEXT,COUNTOF(tchFilter)-1,0); - SetDlgItemText(hwnd,IDC_FILTER,tchFilter); + SendDlgItemMessage(hwnd,IDC_FILTER,EM_LIMITTEXT,COUNTOF(Settings.tchFilter)-1,0); + SetDlgItemText(hwnd,IDC_FILTER, Settings.tchFilter); - CheckDlgButton(hwnd,IDC_NEGFILTER, DlgBtnChk(bNegFilter)); + CheckDlgButton(hwnd,IDC_NEGFILTER, DlgBtnChk(Settings.bNegFilter)); CenterDlgInParent(hwnd); } @@ -1472,12 +1442,12 @@ INT_PTR CALLBACK GetFilterDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara case IDOK: - if (GetDlgItemText(hwnd,IDC_FILTER,tchFilter,COUNTOF(tchFilter)-1)) { - bNegFilter = IsDlgButtonChecked(hwnd,IDC_NEGFILTER)?TRUE:FALSE; + if (GetDlgItemText(hwnd,IDC_FILTER, Settings.tchFilter,COUNTOF(Settings.tchFilter)-1)) { + Settings.bNegFilter = IsDlgButtonChecked(hwnd,IDC_NEGFILTER)?TRUE:FALSE; } else { - lstrcpy(tchFilter,L"*.*"); - bNegFilter = FALSE; + lstrcpy(Settings.tchFilter,L"*.*"); + Settings.bNegFilter = FALSE; } EndDialog(hwnd,IDOK); break; @@ -1510,12 +1480,12 @@ BOOL GetFilterDlg(HWND hwnd) WCHAR tchOldFilter[DL_FILTER_BUFSIZE]; BOOL bOldNegFilter; - lstrcpy(tchOldFilter,tchFilter); - bOldNegFilter = bNegFilter; + lstrcpy(tchOldFilter, Settings.tchFilter); + bOldNegFilter = Settings.bNegFilter; if (IDOK == ThemedDialogBox(g_hLngResContainer,MAKEINTRESOURCE(IDD_FILTER),hwnd,GetFilterDlgProc)) { - if (!lstrcmpi(tchFilter,tchOldFilter) && (bOldNegFilter == bNegFilter)) + if (!lstrcmpi(Settings.tchFilter,tchOldFilter) && (bOldNegFilter == Settings.bNegFilter)) return(FALSE); // Old and new filters are identical else return(TRUE); @@ -1669,8 +1639,6 @@ BOOL RenameFileDlg(HWND hwnd) // CopyMoveDlgProc() // // -extern int cxCopyMoveDlg; - INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -1700,9 +1668,9 @@ INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam mmiPtMinX = rc.right-rc.left; mmiPtMaxY = rc.bottom-rc.top; - if (cxCopyMoveDlg < (rc.right-rc.left)) - cxCopyMoveDlg = rc.right-rc.left; - SetWindowPos(hwnd,NULL,rc.left,rc.top,cxCopyMoveDlg,rc.bottom-rc.top,SWP_NOZORDER); + if (Settings.cxCopyMoveDlg < (rc.right-rc.left)) + Settings.cxCopyMoveDlg = rc.right-rc.left; + SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxCopyMoveDlg,rc.bottom-rc.top,SWP_NOZORDER); SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME); SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); @@ -1751,7 +1719,7 @@ INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam { RECT rc; GetWindowRect(hwnd,&rc); - cxCopyMoveDlg = rc.right-rc.left; + Settings.cxCopyMoveDlg = rc.right-rc.left; DeleteBitmapButton(hwnd,IDC_BROWSEDESTINATION); } @@ -1903,7 +1871,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc) shfos.pFrom = tchSource; shfos.pTo = tchDestination; shfos.fFlags = FOF_NO_CONNECTED_ELEMENTS | FOF_ALLOWUNDO; - if (shfos.wFunc == FO_COPY && bRenameOnCollision) + if (shfos.wFunc == FO_COPY && Settings.bRenameOnCollision) shfos.fFlags |= FOF_RENAMEONCOLLISION; // Save item @@ -1930,7 +1898,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc) if (SHFileOperation(&shfos) == 0) // success { - if (bClearReadOnly) + if (Settings.bClearReadOnly) { DWORD dwFileAttributes = GetFileAttributes(tchDestination); if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) @@ -1952,12 +1920,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc) } - -extern WCHAR tchOpenWithDir[MAX_PATH]; -extern int flagNoFadeHidden; - -extern int cxOpenWithDlg; -extern int cyOpenWithDlg; +extern int flagNoFadeHidden; INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -1985,11 +1948,11 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam mmiPtMinX = rc.right-rc.left; mmiPtMaxY = rc.bottom-rc.top; - if (cxOpenWithDlg < (rc.right-rc.left)) - cxOpenWithDlg = rc.right-rc.left; - if (cyOpenWithDlg < (rc.bottom-rc.top)) - cyOpenWithDlg = rc.bottom-rc.top; - SetWindowPos(hwnd,NULL,rc.left,rc.top,cxOpenWithDlg,cyOpenWithDlg,SWP_NOZORDER); + if (Settings.cxOpenWithDlg < (rc.right-rc.left)) + Settings.cxOpenWithDlg = rc.right-rc.left; + if (Settings.cyOpenWithDlg < (rc.bottom-rc.top)) + Settings.cyOpenWithDlg = rc.bottom-rc.top; + SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxOpenWithDlg, Settings.cyOpenWithDlg,SWP_NOZORDER); SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME); SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); @@ -2013,7 +1976,7 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_OPENWITHDIR),/*LVS_EX_FULLROWSELECT|*/LVS_EX_DOUBLEBUFFER|LVS_EX_LABELTIP); ListView_InsertColumn(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,&lvc); DirList_Init(GetDlgItem(hwnd,IDC_OPENWITHDIR),NULL); - DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR),tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE); + DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR), Settings.tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE, flagNoFadeHidden,DS_NAME,FALSE); DirList_StartIconThread(GetDlgItem(hwnd,IDC_OPENWITHDIR)); ListView_SetItemState(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,LVIS_FOCUSED,LVIS_FOCUSED); @@ -2032,8 +1995,8 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam DeleteBitmapButton(hwnd,IDC_GETOPENWITHDIR); GetWindowRect(hwnd,&rc); - cxOpenWithDlg = rc.right-rc.left; - cyOpenWithDlg = rc.bottom-rc.top; + Settings.cxOpenWithDlg = rc.right-rc.left; + Settings.cyOpenWithDlg = rc.bottom-rc.top; } return FALSE; @@ -2130,9 +2093,9 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam case IDC_GETOPENWITHDIR: { - if (GetDirectory(hwnd,IDS_OPENWITH,tchOpenWithDir,tchOpenWithDir,TRUE)) + if (GetDirectory(hwnd,IDS_OPENWITH,Settings.tchOpenWithDir, Settings.tchOpenWithDir,TRUE)) { - DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR),tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE); + DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR), Settings.tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE); DirList_StartIconThread(GetDlgItem(hwnd,IDC_OPENWITHDIR)); ListView_EnsureVisible(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,FALSE); ListView_SetItemState(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,LVIS_FOCUSED,LVIS_FOCUSED); @@ -2208,7 +2171,7 @@ BOOL OpenWithDlg(HWND hwnd,LPDLITEM lpdliParam) if (SHFileOperation(&shfos) == 0) // success { - if (bClearReadOnly) + if (Settings.bClearReadOnly) { DWORD dwFileAttributes = GetFileAttributes(szDestination); if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) @@ -2234,7 +2197,7 @@ BOOL OpenWithDlg(HWND hwnd,LPDLITEM lpdliParam) sei.lpVerb = NULL; sei.lpFile = dliOpenWith.szFileName; sei.lpParameters = szParam; - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; // resolve links and get short path name @@ -2498,6 +2461,7 @@ extern WCHAR szDDEMsg[256]; extern WCHAR szDDEApp[256]; extern WCHAR szDDETopic[256]; + INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { @@ -2564,11 +2528,11 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar else CheckRadioButton(hwnd,IDC_LAUNCH,IDC_TARGET,IDC_LAUNCH); - lstrcpy(wch,szTargetApplication); + lstrcpy(wch, szTargetApplication); PathQuoteSpaces(wch); if (StrIsNotEmpty(szTargetApplicationParams)) { StrCatBuff(wch,L" ",COUNTOF(wch)); - StrCatBuff(wch,szTargetApplicationParams,COUNTOF(wch)); + StrCatBuff(wch, szTargetApplicationParams,COUNTOF(wch)); } SetDlgItemText(hwnd,IDC_TARGETPATH,wch); @@ -2578,11 +2542,11 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar CheckRadioButton(hwnd,IDC_ALWAYSRUN,IDC_USEDDE,IDC_ALWAYSRUN + i); } - lstrcpy(szTargetWndClass,szTargetApplicationWndClass); + lstrcpy(szTargetWndClass, szTargetApplicationWndClass); - SetDlgItemText(hwnd,IDC_DDEMSG,szDDEMsg); - SetDlgItemText(hwnd,IDC_DDEAPP,szDDEApp); - SetDlgItemText(hwnd,IDC_DDETOPIC,szDDETopic); + SetDlgItemText(hwnd,IDC_DDEMSG, szDDEMsg); + SetDlgItemText(hwnd,IDC_DDEAPP, szDDEApp); + SetDlgItemText(hwnd,IDC_DDETOPIC, szDDETopic); CenterDlgInParent(hwnd); diff --git a/minipath/src/Dlapi.h b/minipath/src/Dlapi.h index 328889f1b..289de19d7 100644 --- a/minipath/src/Dlapi.h +++ b/minipath/src/Dlapi.h @@ -136,14 +136,15 @@ BOOL DirList_SelectItem(HWND,LPCWSTR,LPCWSTR); //==== DlCreateFilter() and DlMatchFilter() =================================== -#define DL_FILTER_BUFSIZE 128 +#define DL_FILTER_BUFSIZE 256 typedef struct tagDL_FILTER { //dlf int nCount; WCHAR tFilterBuf[DL_FILTER_BUFSIZE]; - WCHAR *pFilter [DL_FILTER_BUFSIZE]; + WCHAR* pFilter[DL_FILTER_BUFSIZE]; BOOL bExcludeFilter; -} DL_FILTER, *PDL_FILTER; +} DL_FILTER, * PDL_FILTER; + void DirList_CreateFilter(PDL_FILTER,LPCWSTR,BOOL); diff --git a/minipath/src/Helpers.c b/minipath/src/Helpers.c index c542e6f9e..fe20433d3 100644 --- a/minipath/src/Helpers.c +++ b/minipath/src/Helpers.c @@ -24,6 +24,7 @@ #include #include #include +#include "minipath.h" #include "dlapi.h" #include "config.h" #include "resource.h" @@ -1051,26 +1052,24 @@ void PathCanonicalizeEx(LPWSTR lpSrc) // // This Expansion also searches the L"Favorites" folder // -extern WCHAR g_tchFavoritesDir[MAX_PATH]; -extern WCHAR szCurDir[MAX_PATH]; BOOL SearchPathEx(LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer) { DWORD dwRetVal = 0; if (StrEqual(lpFileName, L"..") || StrEqual(lpFileName, L".")) { - if (StrEqual(lpFileName, L"..") && PathIsRoot(szCurDir)) { + if (StrEqual(lpFileName, L"..") && PathIsRoot(Settings.szCurDir)) { lstrcpyn(lpBuffer, L"*.*", nBufferLength); dwRetVal = 1; } } if (!dwRetVal) { - dwRetVal = SearchPath(szCurDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL); + dwRetVal = SearchPath(Settings.szCurDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL); } // Search Favorites if no result if (!dwRetVal) { - dwRetVal = SearchPath(g_tchFavoritesDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL); + dwRetVal = SearchPath(Settings.g_tchFavoritesDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL); } return dwRetVal != 0; diff --git a/minipath/src/Helpers.h b/minipath/src/Helpers.h index 7d8836b80..84aad927f 100644 --- a/minipath/src/Helpers.h +++ b/minipath/src/Helpers.h @@ -143,6 +143,7 @@ inline BOOL StrIsEmptyW(LPCWSTR s) { return ((s == NULL) || (*s == L'\0')); } //==== History Functions ====================================================== #define HISTORY_ITEMS 50 + typedef struct tagHISTORY { WCHAR *psz[HISTORY_ITEMS]; // Strings diff --git a/minipath/src/minipath.c b/minipath/src/minipath.c index 24397214b..5fe6bf13c 100644 --- a/minipath/src/minipath.c +++ b/minipath/src/minipath.c @@ -30,8 +30,20 @@ #include "minipath.h" #include "resource.h" + +SETTINGS_T Settings; +SETTINGS_T Defaults; + +WCHAR g_wchIniFile[MAX_PATH]; +WCHAR g_wchIniFile2[MAX_PATH]; +WCHAR g_wchNP3IniFile[MAX_PATH]; + HICON g_hDlgIcon = NULL; +WCHAR g_tchPrefLngLocName[LOCALE_NAME_MAX_LENGTH + 1]; +LANGID g_iPrefLANGID; + + /****************************************************************************** * * Local Variables for minipath.c @@ -70,66 +82,19 @@ HWND hwndMain; HANDLE hChangeHandle = NULL; -HISTORY mHistory; +HISTORY g_mHistory; WCHAR g_wchIniFile[MAX_PATH] = L""; WCHAR g_wchIniFile2[MAX_PATH] = L""; WCHAR g_wchNP3IniFile[MAX_PATH] = L""; -BOOL bSaveSettings; -WCHAR szQuickview[MAX_PATH] = L""; -WCHAR szQuickviewParams[MAX_PATH] = L""; -WCHAR g_tchFavoritesDir[MAX_PATH] = L""; -BOOL bNP3sFavoritesSettings = FALSE; -WCHAR tchOpenWithDir[MAX_PATH] = L""; -WCHAR tchToolbarButtons[512] = L""; -WCHAR tchToolbarBitmap[MAX_PATH] = L""; -WCHAR tchToolbarBitmapHot[MAX_PATH] = L""; -WCHAR tchToolbarBitmapDisabled[MAX_PATH] = L""; -BOOL bClearReadOnly; -BOOL bRenameOnCollision; -BOOL bSingleClick; -BOOL bTrackSelect; -BOOL bFullRowSelect; -int iStartupDir; -int iEscFunction; -BOOL bFocusEdit; -BOOL bAlwaysOnTop; -BOOL g_bTransparentMode; -BOOL bMinimizeToTray; -BOOL fUseRecycleBin; -BOOL fNoConfirmDelete; -BOOL bShowToolbar; -BOOL bShowStatusbar; -BOOL bShowDriveBox; -int cxGotoDlg; -int cxOpenWithDlg; -int cyOpenWithDlg; -int cxCopyMoveDlg; - -WCHAR tchFilter[DL_FILTER_BUFSIZE]; -BOOL bNegFilter; -BOOL bDefCrNoFilt; -BOOL bDefCrFilter; -COLORREF crNoFilt; -COLORREF crFilter; -COLORREF crCustom[16]; - -WININFO wi; - +int nIdFocus = IDC_DIRLIST; int cyReBar; int cyReBarFrame; int cyDriveBoxFrame; -int nIdFocus = IDC_DIRLIST; - -WCHAR szCurDir[MAX_PATH + 40]; -DWORD dwFillMask; -int nSortFlags; -BOOL fSortRev; - -LPWSTR lpPathArg = NULL; -LPWSTR lpFilterArg = NULL; +LPWSTR lpPathArg = NULL; +LPWSTR lpFilterArg = NULL; UINT wFuncCopyMove = FO_COPY; @@ -274,7 +239,6 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int HWND hwnd; HACCEL hAcc; - INITCOMMONCONTROLSEX icex; // Set global variable g_hInstance g_hInstance = hInstance; @@ -290,6 +254,7 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX); // Command Line, Ini File and Flags + InitDefaultSettings(); ParseCommandLine(); FindIniFile(); TestIniFile(); @@ -302,6 +267,8 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int // Init OLE and Common Controls OleInitialize(NULL); + INITCOMMONCONTROLSEX icex; + ZeroMemory(&icex, sizeof(INITCOMMONCONTROLSEX)); icex.dwSize = sizeof(INITCOMMONCONTROLSEX); icex.dwICC = ICC_WIN95_CLASSES|ICC_COOL_CLASSES|ICC_BAR_CLASSES|ICC_USEREX_CLASSES; InitCommonControlsEx(&icex); @@ -430,11 +397,17 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow) { UNUSED(pszCmdLine); + WININFO wi = Settings.wi; + RECT rc; - rc.left = wi.x; rc.top = wi.y; rc.right = wi.x + wi.cx; rc.bottom = wi.y + wi.cy; + rc.left = wi.x; + rc.top = wi.y; + rc.right = wi.x + wi.cx; + rc.bottom = wi.y + wi.cy; RECT rc2; MONITORINFO mi; + HMONITOR hMonitor = MonitorFromRect(&rc,MONITOR_DEFAULTTONEAREST); mi.cbSize = sizeof(mi); GetMonitorInfo(hMonitor,&mi); @@ -496,10 +469,10 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow) hInstance, NULL); - if (bAlwaysOnTop) + if (Settings.bAlwaysOnTop) SetWindowPos(hwndMain,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); - if (g_bTransparentMode) { + if (Settings.g_bTransparentMode) { int const iAlphaPercent = IniFileGetInt(g_wchIniFile, L"Settings2", L"OpacityLevel", 75); SetWindowTransparentMode(hwndMain, TRUE, clampi(iAlphaPercent, 0, 100)); } @@ -521,9 +494,9 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow) } // Use a startup directory - else if (iStartupDir) + else if (Settings.iStartupDir) { - if (iStartupDir == 1) + if (Settings.iStartupDir == 1) { WCHAR tch[MAX_PATH]; if (IniFileGetString(g_wchIniFile, L"Settings", L"MRUDirectory", L"", tch, COUNTOF(tch))) @@ -532,17 +505,19 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow) ErrorMessage(2,IDS_ERR_STARTUPDIR); } else - DisplayPath(g_tchFavoritesDir,IDS_ERR_STARTUPDIR); + DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_STARTUPDIR); } // Favorites else if (flagGotoFavorites) - DisplayPath(g_tchFavoritesDir,IDS_ERR_FAVORITES); + DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_FAVORITES); // Update Dirlist if (!ListView_GetItemCount(hwndDirList)) PostMessage(hwndMain,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0); + Settings.wi = wi; + return(hwndMain); } @@ -632,18 +607,18 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) wndpl.length = sizeof(WINDOWPLACEMENT); GetWindowPlacement(hwnd,&wndpl); - wi.x = wndpl.rcNormalPosition.left; - wi.y = wndpl.rcNormalPosition.top; - wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left; - wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top; + Settings.wi.x = wndpl.rcNormalPosition.left; + Settings.wi.y = wndpl.rcNormalPosition.top; + Settings.wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left; + Settings.wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top; DirList_Destroy(hwndDirList); DragAcceptFiles(hwnd,FALSE); - History_Uninit(&mHistory); + History_Uninit(&g_mHistory); // prepare save - Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, tchToolbarButtons, COUNTOF(tchToolbarButtons)); + Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons)); SaveSettings(FALSE); @@ -665,12 +640,12 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) { LRESULT lret = DefWindowProc(hwnd,umsg,wParam,lParam); - if (lstrcmp(tchFilter,L"*.*") || bNegFilter) { - ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter); + if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) { + ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter); ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1); } else { - ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt); + ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt); ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1); } @@ -733,7 +708,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) case WM_SETFOCUS: - SetFocus(GetDlgItem(hwnd,nIdFocus)); + SetFocus(GetDlgItem(hwnd, nIdFocus)); break; @@ -839,7 +814,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) case SC_MINIMIZE: case SC_MINIMIZE | 0x02: ShowOwnedPopups(hwnd,FALSE); - if (!bMinimizeToTray) + if (!Settings.bMinimizeToTray) return DefWindowProc(hwnd,umsg,wParam,lParam); else { MinimizeWndToTray(hwnd); @@ -854,12 +829,12 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) } case SC_ALWAYSONTOP: - if (bAlwaysOnTop) { - bAlwaysOnTop = 0; + if (Settings.bAlwaysOnTop) { + Settings.bAlwaysOnTop = 0; SetWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); } else { - bAlwaysOnTop = 1; + Settings.bAlwaysOnTop = 1; SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); } break; @@ -972,7 +947,7 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam) SetWindowPos(hwndDirList,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); } - if (bShowDriveBox) + if (Settings.bShowDriveBox) dwDriveBoxStyle |= WS_VISIBLE; hwndDriveBox = CreateWindowEx( @@ -997,11 +972,11 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam) ListView_SetExtendedListViewStyle(hwndDirList,LVS_EX_DOUBLEBUFFER|LVS_EX_LABELTIP); ListView_InsertColumn(hwndDirList,0,&lvc); DirList_Init(hwndDirList,NULL); - if (bTrackSelect) + if (Settings.bTrackSelect) ListView_SetExtendedListViewStyleEx(hwndDirList, LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE, LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE); - if (bFullRowSelect) { + if (Settings.bFullRowSelect) { ListView_SetExtendedListViewStyleEx(hwndDirList, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); @@ -1012,8 +987,8 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam) // Drag & Drop DragAcceptFiles(hwnd,TRUE); // History - History_Init(&mHistory); - History_UpdateToolbar(&mHistory,hwndToolbar, + History_Init(&g_mHistory); + History_UpdateToolbar(&g_mHistory,hwndToolbar, IDT_HISTORY_BACK,IDT_HISTORY_FORWARD); // ToolTip with Current Directory ZeroMemory(&ti,sizeof(TOOLINFO)); @@ -1102,7 +1077,7 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance) WCHAR tchDesc[256]; WCHAR tchIndex[256]; - if (bShowToolbar) + if (Settings.bShowToolbar) dwReBarStyle |= WS_VISIBLE; hwndToolbar = CreateWindowEx(0,TOOLBARCLASSNAME,NULL,dwToolbarStyle, @@ -1112,9 +1087,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance) // Add normal Toolbar Bitmap hbmp = NULL; - if (StrIsNotEmpty(tchToolbarBitmap)) + if (StrIsNotEmpty(Settings.tchToolbarBitmap)) { - hbmp = _LoadBitmapFile(tchToolbarBitmap); + hbmp = _LoadBitmapFile(Settings.tchToolbarBitmap); } if (hbmp) { bExternalBitmap = TRUE; @@ -1134,9 +1109,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance) // Optionally add hot Toolbar Bitmap hbmp = NULL; - if (StrIsNotEmpty(tchToolbarBitmapHot)) + if (StrIsNotEmpty(Settings.tchToolbarBitmapHot)) { - hbmp = _LoadBitmapFile(tchToolbarBitmapHot); + hbmp = _LoadBitmapFile(Settings.tchToolbarBitmapHot); if (hbmp) { GetObject(hbmp,sizeof(BITMAP),&bmp); @@ -1149,9 +1124,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance) // Optionally add disabled Toolbar Bitmap hbmp = NULL; - if (StrIsNotEmpty(tchToolbarBitmapDisabled)) + if (StrIsNotEmpty(Settings.tchToolbarBitmapDisabled)) { - hbmp = _LoadBitmapFile(tchToolbarBitmapDisabled); + hbmp = _LoadBitmapFile(Settings.tchToolbarBitmapDisabled); if (hbmp) { GetObject(hbmp,sizeof(BITMAP),&bmp); @@ -1218,12 +1193,12 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance) SendMessage(hwndToolbar,TB_ADDBUTTONS,NUMINITIALTOOLS,(LPARAM)tbbMainWnd); //SendMessage(hwndToolbar,TB_SAVERESTORE,FALSE,(LPARAM)lptbsp); - if (Toolbar_SetButtons(hwndToolbar,IDT_HISTORY_BACK,tchToolbarButtons,tbbMainWnd,COUNTOF(tbbMainWnd)) == 0) + if (Toolbar_SetButtons(hwndToolbar,IDT_HISTORY_BACK, Settings.tchToolbarButtons,tbbMainWnd,COUNTOF(tbbMainWnd)) == 0) SendMessage(hwndToolbar,TB_ADDBUTTONS,NUMINITIALTOOLS,(LPARAM)tbbMainWnd); SendMessage(hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc); //SendMessage(hwndToolbar,TB_SETINDENT,2,0); - if (bShowStatusbar) + if (Settings.bShowStatusbar) dwStatusbarStyle |= WS_VISIBLE; hwndStatus = CreateStatusWindow(dwStatusbarStyle,NULL,hwnd,IDC_STATUSBAR); @@ -1277,7 +1252,7 @@ void MsgThemeChanged(HWND hwnd,WPARAM wParam,LPARAM lParam) if (IsVista() && bIsAppThemed) { SetWindowLongPtr(hwndDirList,GWL_EXSTYLE,GetWindowLongPtr(hwndDirList,GWL_EXSTYLE) & ~WS_EX_CLIENTEDGE); SetWindowPos(hwndDirList,NULL,0,0,0,0,SWP_NOZORDER|SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE); - if (bFullRowSelect) + if (Settings.bFullRowSelect) SetTheme(hwndDirList,L"Explorer"); else SetTheme(hwndDirList,L"Listview"); @@ -1293,7 +1268,7 @@ void MsgThemeChanged(HWND hwnd,WPARAM wParam,LPARAM lParam) SendMessage(hwndStatus,SB_GETTEXT,ID_FILEINFO,(LPARAM)chStatus); // recreate toolbar and statusbar - Toolbar_GetButtons(hwndToolbar,IDT_HISTORY_BACK,tchToolbarButtons,COUNTOF(tchToolbarButtons)); + Toolbar_GetButtons(hwndToolbar,IDT_HISTORY_BACK, Settings.tchToolbarButtons,COUNTOF(Settings.tchToolbarButtons)); DestroyWindow(hwndToolbar); DestroyWindow(hwndReBar); @@ -1334,7 +1309,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam) cx = LOWORD(lParam); cy = HIWORD(lParam); - if (bShowToolbar) + if (Settings.bShowToolbar) { /* SendMessage(hwndToolbar,WM_SIZE,0,0); GetWindowRect(hwndToolbar,&rc); @@ -1353,7 +1328,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam) cy -= cyReBar + cyReBarFrame; // border } - if (bShowStatusbar) + if (Settings.bShowStatusbar) { SendMessage(hwndStatus,WM_SIZE,0,0); GetWindowRect(hwndStatus,&rc); @@ -1365,7 +1340,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam) DeferWindowPos(hdwp,hwndDriveBox,NULL,x,y,cx,max(cy,100), SWP_NOZORDER | SWP_NOACTIVATE); - if (bShowDriveBox) { + if (Settings.bShowDriveBox) { GetWindowRect(hwndDriveBox,&rc); y += (rc.bottom - rc.top) + cyDriveBoxFrame; cy -= (rc.bottom - rc.top) + cyDriveBoxFrame; @@ -1417,23 +1392,23 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam) i = (SendMessage(hwndDriveBox,CB_GETCURSEL,0,0) != CB_ERR); EnableCmd(hmenu,IDM_FILE_DRIVEPROP,i); - CheckCmd(hmenu,IDM_VIEW_FOLDERS,(dwFillMask & DL_FOLDERS)); - CheckCmd(hmenu,IDM_VIEW_FILES,(dwFillMask & DL_NONFOLDERS)); - CheckCmd(hmenu,IDM_VIEW_HIDDEN,(dwFillMask & DL_INCLHIDDEN)); + CheckCmd(hmenu,IDM_VIEW_FOLDERS,(Settings.dwFillMask & DL_FOLDERS)); + CheckCmd(hmenu,IDM_VIEW_FILES,(Settings.dwFillMask & DL_NONFOLDERS)); + CheckCmd(hmenu,IDM_VIEW_HIDDEN,(Settings.dwFillMask & DL_INCLHIDDEN)); - EnableCmd(hmenu,IDM_VIEW_FILTERALL,(lstrcmp(tchFilter,L"*.*") || bNegFilter)); + EnableCmd(hmenu,IDM_VIEW_FILTERALL,(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter)); - CheckCmd(hmenu,IDM_VIEW_TOOLBAR,bShowToolbar); - EnableCmd(hmenu,IDM_VIEW_CUSTOMIZETB,bShowToolbar); - CheckCmd(hmenu,IDM_VIEW_STATUSBAR,bShowStatusbar); - CheckCmd(hmenu,IDM_VIEW_DRIVEBOX,bShowDriveBox); + CheckCmd(hmenu,IDM_VIEW_TOOLBAR, Settings.bShowToolbar); + EnableCmd(hmenu,IDM_VIEW_CUSTOMIZETB, Settings.bShowToolbar); + CheckCmd(hmenu,IDM_VIEW_STATUSBAR, Settings.bShowStatusbar); + CheckCmd(hmenu,IDM_VIEW_DRIVEBOX, Settings.bShowDriveBox); CheckMenuRadioItem(hmenu,IDM_SORT_NAME,IDM_SORT_DATE, - IDM_SORT_NAME + nSortFlags,MF_BYCOMMAND); + IDM_SORT_NAME + Settings.nSortFlags,MF_BYCOMMAND); - CheckCmd(hmenu,IDM_SORT_REVERSE,fSortRev); + CheckCmd(hmenu,IDM_SORT_REVERSE, Settings.fSortRev); - CheckCmd(hmenu,SC_ALWAYSONTOP,bAlwaysOnTop); + CheckCmd(hmenu,SC_ALWAYSONTOP, Settings.bAlwaysOnTop); i = (StrIsNotEmpty(g_wchIniFile) || StrIsNotEmpty(g_wchIniFile2)); EnableCmd(hmenu,IDM_VIEW_SAVESETTINGS,i); @@ -1469,12 +1444,12 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) WCHAR tch[64]; if (DriveBox_GetSelDrive(hwndDriveBox,tch,COUNTOF(tch),TRUE) - && !PathIsSameRoot(szCurDir,tch)) + && !PathIsSameRoot(Settings.szCurDir,tch)) { if (!ChangeDirectory(hwnd,tch,1)) { ErrorMessage(2,IDS_ERR_CD); - DriveBox_SelectDrive(hwndDriveBox,szCurDir); + DriveBox_SelectDrive(hwndDriveBox, Settings.szCurDir); } } SetFocus(hwndDirList); @@ -1600,7 +1575,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) sei.lpVerb = NULL; sei.lpFile = dli.szFileName; sei.lpParameters = NULL; - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; ShellExecuteEx(&sei); @@ -1630,8 +1605,8 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) else GetShortPathName(dli.szFileName,szTmp,COUNTOF(szTmp)); - if (StrIsNotEmpty(szQuickviewParams)) { - StrCatBuff(szParam,szQuickviewParams,COUNTOF(szParam)); + if (StrIsNotEmpty(Settings.szQuickviewParams)) { + StrCatBuff(szParam, Settings.szQuickviewParams,COUNTOF(szParam)); StrCatBuff(szParam,L" ",COUNTOF(szParam)); } StrCatBuff(szParam,szTmp,COUNTOF(szParam)); @@ -1641,9 +1616,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) sei.fMask = 0; sei.hwnd = hwnd; sei.lpVerb = NULL; - sei.lpFile = szQuickview; + sei.lpFile = Settings.szQuickview; sei.lpParameters = szParam; - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; ShellExecuteEx(&sei); @@ -1697,7 +1672,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) ofn.lpstrFile = szNewFile; ofn.nMaxFile = MAX_PATH; ofn.lpstrTitle = szTitle; - ofn.lpstrInitialDir = szCurDir; + ofn.lpstrInitialDir = Settings.szCurDir; ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_DONTADDTORECENT | OFN_NODEREFERENCELINKS | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST; @@ -1816,7 +1791,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) if (!bSuccess) ErrorMessage(2,IDS_ERR_SAVEAS1,dli.szDisplayName); - if (bSuccess && bClearReadOnly) + if (bSuccess && Settings.bClearReadOnly) { DWORD dwFileAttributes = GetFileAttributes(szNewFile); if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) @@ -1862,9 +1837,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) shfos.wFunc = FO_DELETE; shfos.pFrom = tch; shfos.pTo = NULL; - if (fUseRecycleBin && (LOWORD(wParam) != IDM_FILE_DELETE2)) + if (Settings.fUseRecycleBin && (LOWORD(wParam) != IDM_FILE_DELETE2)) shfos.fFlags = FOF_ALLOWUNDO; - if (fNoConfirmDelete || LOWORD(wParam) == IDM_FILE_DELETE3) + if (Settings.fNoConfirmDelete || LOWORD(wParam) == IDM_FILE_DELETE3) shfos.fFlags |= FOF_NOCONFIRMATION; SHFileOperation(&shfos); @@ -1936,7 +1911,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) GetModuleFileName(NULL,szModuleName,COUNTOF(szModuleName)); - lstrcpy(szParameters,szCurDir); + lstrcpy(szParameters, Settings.szCurDir); PathQuoteSpaces(szParameters); lstrcat(szParameters,L" -f"); @@ -1978,30 +1953,30 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDM_VIEW_FOLDERS: - if (dwFillMask & DL_FOLDERS) - dwFillMask &= (~DL_FOLDERS); + if (Settings.dwFillMask & DL_FOLDERS) + Settings.dwFillMask &= (~DL_FOLDERS); else - dwFillMask |= DL_FOLDERS; + Settings.dwFillMask |= DL_FOLDERS; SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0); ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update break; case IDM_VIEW_FILES: - if (dwFillMask & DL_NONFOLDERS) - dwFillMask &= (~DL_NONFOLDERS); + if (Settings.dwFillMask & DL_NONFOLDERS) + Settings.dwFillMask &= (~DL_NONFOLDERS); else - dwFillMask |= DL_NONFOLDERS; + Settings.dwFillMask |= DL_NONFOLDERS; SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0); ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update break; case IDM_VIEW_HIDDEN: - if (dwFillMask & DL_INCLHIDDEN) - dwFillMask &= (~DL_INCLHIDDEN); + if (Settings.dwFillMask & DL_INCLHIDDEN) + Settings.dwFillMask &= (~DL_INCLHIDDEN); else - dwFillMask |= DL_INCLHIDDEN; + Settings.dwFillMask |= DL_INCLHIDDEN; SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0); ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update break; @@ -2023,16 +1998,16 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) } } Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER, - (lstrcmp(tchFilter,L"*.*") || bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1); + (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1); break; case IDM_VIEW_FILTERALL: - if (lstrcmp(tchFilter,L"*.*") || bNegFilter) { + if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) { DLITEM dli; - lstrcpy(tchFilter,L"*.*"); - bNegFilter = FALSE; + lstrcpy(Settings.tchFilter,L"*.*"); + Settings.bNegFilter = FALSE; // Store information about currently selected item dli.mask = DLI_ALL; @@ -2057,7 +2032,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDM_VIEW_FAVORITES: // Goto Favorites Directory - DisplayPath(g_tchFavoritesDir,IDS_ERR_FAVORITES); + DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_FAVORITES); break; @@ -2068,7 +2043,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) sei.fMask = 0; sei.hwnd = hwnd; sei.lpVerb = NULL; - sei.lpFile = g_tchFavoritesDir; + sei.lpFile = Settings.g_tchFavoritesDir; sei.lpParameters = NULL; sei.lpDirectory = NULL; sei.nShow = SW_SHOWNORMAL; @@ -2080,13 +2055,13 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDM_VIEW_TOOLBAR: - if (bShowToolbar) { + if (Settings.bShowToolbar) { ShowWindow(hwndReBar,SW_HIDE); - bShowToolbar = 0; + Settings.bShowToolbar = 0; } else { ShowWindow(hwndReBar,SW_SHOW); - bShowToolbar = 1; + Settings.bShowToolbar = 1; } SendWMSize(hwnd); break; @@ -2098,28 +2073,28 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDM_VIEW_STATUSBAR: - if (bShowStatusbar) { + if (Settings.bShowStatusbar) { ShowWindow(hwndStatus,SW_HIDE); - bShowStatusbar = 0; + Settings.bShowStatusbar = 0; } else { ShowWindow(hwndStatus,SW_SHOW); - bShowStatusbar = 1; + Settings.bShowStatusbar = 1; } SendWMSize(hwnd); break; case IDM_VIEW_DRIVEBOX: - if (bShowDriveBox) { + if (Settings.bShowDriveBox) { ShowWindow(hwndDriveBox,SW_HIDE); - bShowDriveBox = 0; + Settings.bShowDriveBox = 0; if (GetDlgCtrlID(GetFocus()) == IDC_DRIVEBOX) SetFocus(hwndDirList); } else { ShowWindow(hwndDriveBox,SW_SHOW); - bShowDriveBox = 1; + Settings.bShowDriveBox = 1; } SendWMSize(hwnd); break; @@ -2147,18 +2122,20 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) if (IniFileSetString(g_wchIniFile, L"Settings", L"WriteTest", L"ok")) { // prepare save - Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, tchToolbarButtons, COUNTOF(tchToolbarButtons)); + Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons)); BeginWaitCursor(); SaveSettings(TRUE); EndWaitCursor(); ErrorMessage(0,IDS_SAVESETTINGS); } - else - ErrorMessage(2,IDS_ERR_INIWRITE); + else { + ErrorMessage(2, IDS_ERR_INIWRITE); + } + } + else { + ErrorMessage(2, IDS_ERR_INICREATE); } - else - ErrorMessage(2,IDS_ERR_INICREATE); } break; @@ -2170,37 +2147,37 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDM_VIEW_OPTIONS: OptionsPropSheet(hwnd, g_hLngResContainer); - bHasQuickview = PathFileExists(szQuickview); + bHasQuickview = PathFileExists(Settings.szQuickview); break; case IDM_SORT_NAME: - nSortFlags = DS_NAME; - DirList_Sort(hwndDirList,nSortFlags,fSortRev); + Settings.nSortFlags = DS_NAME; + DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev); break; case IDM_SORT_SIZE: - nSortFlags = DS_SIZE; - DirList_Sort(hwndDirList,nSortFlags,fSortRev); + Settings.nSortFlags = DS_SIZE; + DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev); break; case IDM_SORT_TYPE: - nSortFlags = DS_TYPE; - DirList_Sort(hwndDirList,nSortFlags,fSortRev); + Settings.nSortFlags = DS_TYPE; + DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev); break; case IDM_SORT_DATE: - nSortFlags = DS_LASTMOD; - DirList_Sort(hwndDirList,nSortFlags,fSortRev); + Settings.nSortFlags = DS_LASTMOD; + DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev); break; case IDM_SORT_REVERSE: - fSortRev = !fSortRev; - DirList_Sort(hwndDirList,nSortFlags,fSortRev); + Settings.fSortRev = !Settings.fSortRev; + DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev); break; @@ -2232,9 +2209,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case ACC_ESCAPE: if (SendMessage(hwndDriveBox,CB_GETDROPPEDSTATE,0,0)) SendMessage(hwndDriveBox,CB_SHOWDROPDOWN,0,0); - else if (iEscFunction == 1) + else if (Settings.iEscFunction == 1) SendMessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0); - else if (iEscFunction == 2) + else if (Settings.iEscFunction == 2) PostMessage(hwnd,WM_CLOSE,0,0); break; @@ -2256,7 +2233,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) nId = IDC_DIRLIST; } - if (nId == IDC_DRIVEBOX && !bShowDriveBox) + if (nId == IDC_DRIVEBOX && !Settings.bShowDriveBox) nId = IDC_DIRLIST; SetFocus(GetDlgItem(hwnd,nId)); @@ -2266,17 +2243,17 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case ACC_TOGGLE_FOCUSEDIT: - if (bFocusEdit) - bFocusEdit = 0; + if (Settings.bFocusEdit) + Settings.bFocusEdit = 0; else - bFocusEdit = 1; + Settings.bFocusEdit = 1; break; case ACC_SWITCHTRANSPARENCY: - g_bTransparentMode = !g_bTransparentMode; + Settings.g_bTransparentMode = !Settings.g_bTransparentMode; int const iAlphaPercent = IniFileGetInt(g_wchIniFile, L"Settings2", L"OpacityLevel", 75); - SetWindowTransparentMode(hwndMain, g_bTransparentMode, clampi(iAlphaPercent, 0, 100)); + SetWindowTransparentMode(hwndMain, Settings.g_bTransparentMode, clampi(iAlphaPercent, 0, 100)); break; @@ -2342,38 +2319,38 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDT_HISTORY_BACK: - if (History_CanBack(&mHistory)) + if (History_CanBack(&g_mHistory)) { WCHAR tch[MAX_PATH]; - History_Back(&mHistory,tch,COUNTOF(tch)); + History_Back(&g_mHistory,tch,COUNTOF(tch)); if (!ChangeDirectory(hwnd,tch,0)) ErrorMessage(2,IDS_ERR_CD); } else MessageBeep(0); - History_UpdateToolbar(&mHistory,hwndToolbar, + History_UpdateToolbar(&g_mHistory,hwndToolbar, IDT_HISTORY_BACK,IDT_HISTORY_FORWARD); break; case IDT_HISTORY_FORWARD: - if (History_CanForward(&mHistory)) + if (History_CanForward(&g_mHistory)) { WCHAR tch[MAX_PATH]; - History_Forward(&mHistory,tch,COUNTOF(tch)); + History_Forward(&g_mHistory,tch,COUNTOF(tch)); if (!ChangeDirectory(hwnd,tch,0)) ErrorMessage(2,IDS_ERR_CD); } else MessageBeep(0); - History_UpdateToolbar(&mHistory,hwndToolbar, + History_UpdateToolbar(&g_mHistory,hwndToolbar, IDT_HISTORY_BACK,IDT_HISTORY_FORWARD); break; case IDT_UPDIR: { - if (!PathIsRoot(szCurDir)) + if (!PathIsRoot(Settings.szCurDir)) { if (!ChangeDirectory(hwnd,L"..",1)) ErrorMessage(2,IDS_ERR_CD); @@ -2386,7 +2363,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDT_ROOT: { - if (!PathIsRoot(szCurDir)) + if (!PathIsRoot(Settings.szCurDir)) { if (!ChangeDirectory(hwnd,L"\\",1)) ErrorMessage(2,IDS_ERR_CD); @@ -2512,10 +2489,10 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case IDT_FILE_DELETE: if (ListView_GetSelectedCount(hwndDirList)) { - BOOL fUseRecycleBin2 = fUseRecycleBin; - fUseRecycleBin = 1; + BOOL const fUseRecycleBin2 = Settings.fUseRecycleBin; + Settings.fUseRecycleBin = 1; SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_FILE_DELETE,1),0); - fUseRecycleBin = fUseRecycleBin2; + Settings.fUseRecycleBin = fUseRecycleBin2; } else MessageBeep(0); @@ -2628,7 +2605,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) { wsprintf(tchnum,L"%u",ListView_GetItemCount(hwndDirList)); FormatNumberStr(tchnum); - FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(tchFilter,L"*.*") || bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum); + FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum); } StatusSetText(hwndStatus,ID_FILEINFO,tch); @@ -2639,7 +2616,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) case NM_CLICK: - if (bSingleClick && ListView_GetSelectedCount(hwndDirList)) + if (Settings.bSingleClick && ListView_GetSelectedCount(hwndDirList)) { if (IsKeyDown(VK_MENU)) SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_FILE_PROPERTIES,1),0); @@ -2688,10 +2665,10 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) { case TBN_ENDADJUST: - History_UpdateToolbar(&mHistory,hwndToolbar, + History_UpdateToolbar(&g_mHistory,hwndToolbar, IDT_HISTORY_BACK,IDT_HISTORY_FORWARD); Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER, - (lstrcmp(tchFilter,L"*.*") || bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1); + (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1); break; case TBN_QUERYDELETE: @@ -2736,7 +2713,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) if (((LPTOOLTIPTEXT)lParam)->uFlags & TTF_IDISHWND) { - PathCompactPathEx(((LPTOOLTIPTEXT)lParam)->szText,szCurDir, + PathCompactPathEx(((LPTOOLTIPTEXT)lParam)->szText, Settings.szCurDir, COUNTOF(((LPTOOLTIPTEXT)lParam)->szText),0); } @@ -2796,25 +2773,26 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory) int iTopItem = ListView_GetTopIndex(hwndDirList); - GetCurrentDirectory(COUNTOF(szCurDir),szCurDir); + GetCurrentDirectory(COUNTOF(Settings.szCurDir), Settings.szCurDir); - SetWindowPathTitle(hwnd,szCurDir); + SetWindowPathTitle(hwnd, Settings.szCurDir); - if (lstrcmp(tchFilter,L"*.*") || bNegFilter) { - ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter); + if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) { + ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter); Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,TBFILTERBMP); } else { - ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt); + ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt); Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,TBFILTERBMP+1); } - cItems = DirList_Fill(hwndDirList,szCurDir,dwFillMask,tchFilter,bNegFilter,flagNoFadeHidden,nSortFlags,fSortRev); + cItems = DirList_Fill(hwndDirList, Settings.szCurDir, Settings.dwFillMask, + Settings.tchFilter, Settings.bNegFilter,flagNoFadeHidden, Settings.nSortFlags, Settings.fSortRev); DirList_StartIconThread(hwndDirList); // Get long pathname - DirList_GetLongPathName(hwndDirList,szCurDir); - SetCurrentDirectory(szCurDir); + DirList_GetLongPathName(hwndDirList, Settings.szCurDir); + SetCurrentDirectory(Settings.szCurDir); if (cItems > 0) ListView_SetItemState(hwndDirList,0,LVIS_FOCUSED,LVIS_FOCUSED); @@ -2830,7 +2808,7 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory) // setup new change notification handle FindCloseChangeNotification(hChangeHandle); - hChangeHandle = FindFirstChangeNotification(szCurDir,FALSE, + hChangeHandle = FindFirstChangeNotification(Settings.szCurDir,FALSE, FILE_NOTIFY_CHANGE_FILE_NAME | \ FILE_NOTIFY_CHANGE_DIR_NAME | \ FILE_NOTIFY_CHANGE_ATTRIBUTES | \ @@ -2838,18 +2816,18 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory) FILE_NOTIFY_CHANGE_LAST_WRITE); DriveBox_Fill(hwndDriveBox); - DriveBox_SelectDrive(hwndDriveBox,szCurDir); + DriveBox_SelectDrive(hwndDriveBox, Settings.szCurDir); wsprintf(tchnum,L"%u",cItems); FormatNumberStr(tchnum); - FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(tchFilter,L"*.*") || bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum); + FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum); StatusSetText(hwndStatus,ID_FILEINFO,tch); // Update History if (bUpdateHistory) { - History_Add(&mHistory,szCurDir); - History_UpdateToolbar(&mHistory,hwndToolbar, + History_Add(&g_mHistory, Settings.szCurDir); + History_UpdateToolbar(&g_mHistory,hwndToolbar, IDT_HISTORY_BACK,IDT_HISTORY_FORWARD); } @@ -2921,15 +2899,15 @@ void ParseCommandLine() case L'P': if (*CharUpper(lp1+1) == L'D' || *CharUpper(lp1+1) == L'S') { flagPosParam = 1; - wi.x = wi.y = wi.cx = wi.cy = CW_USEDEFAULT; + Settings.wi.x = Settings.wi.y = Settings.wi.cx = Settings.wi.cy = CW_USEDEFAULT; } else if (ExtractFirstArgument(lp2,lp1,lp2)) { int itok = - swscanf_s(lp1,L"%i,%i,%i,%i",&wi.x,&wi.y,&wi.cx,&wi.cy); + swscanf_s(lp1,L"%i,%i,%i,%i",&Settings.wi.x,&Settings.wi.y,&Settings.wi.cx,&Settings.wi.cy); if (itok == 4) { // scan successful flagPosParam = 1; - if (wi.cx < 1) wi.cx = CW_USEDEFAULT; - if (wi.cy < 1) wi.cy = CW_USEDEFAULT; + if (Settings.wi.cx < 1) Settings.wi.cx = CW_USEDEFAULT; + if (Settings.wi.cy < 1) Settings.wi.cy = CW_USEDEFAULT; } } break; @@ -3402,7 +3380,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew) if (IsIconic(hwnd)) ShowWindowAsync(hwnd,SW_RESTORE); - if (bFocusEdit) + if (Settings.bFocusEdit) SetForegroundWindow(hwnd); if (lpFileName) @@ -3473,7 +3451,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew) sei.lpVerb = NULL; sei.lpFile = szFile; sei.lpParameters = szParam; - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; ShellExecuteEx(&sei); @@ -3545,7 +3523,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew) sei.lpFile = lpParam; sei.lpParameters = NULL; } - sei.lpDirectory = szCurDir; + sei.lpDirectory = Settings.szCurDir; sei.nShow = SW_SHOWNORMAL; ShellExecuteEx(&sei); diff --git a/minipath/src/minipath.h b/minipath/src/minipath.h index 57d7b1b75..082fbed7b 100644 --- a/minipath/src/minipath.h +++ b/minipath/src/minipath.h @@ -89,6 +89,65 @@ typedef struct _wi int cy; } WININFO; +// ---------------------------------------------------------------------------- + +#define DL_FILTER_BUFSIZE 256 // should correspond to Dlapi.h def + +typedef struct _settings_t +{ + BOOL bSaveSettings; + WCHAR szQuickview[MAX_PATH]; + WCHAR szQuickviewParams[MAX_PATH]; + WCHAR g_tchFavoritesDir[MAX_PATH]; + BOOL bNP3sFavoritesSettings; + WCHAR tchOpenWithDir[MAX_PATH]; + WCHAR tchToolbarButtons[512]; + WCHAR tchToolbarBitmap[MAX_PATH]; + WCHAR tchToolbarBitmapHot[MAX_PATH]; + WCHAR tchToolbarBitmapDisabled[MAX_PATH]; + BOOL bClearReadOnly; + BOOL bRenameOnCollision; + BOOL bSingleClick; + BOOL bTrackSelect; + BOOL bFullRowSelect; + int iStartupDir; + int iEscFunction; + BOOL bFocusEdit; + BOOL bAlwaysOnTop; + BOOL g_bTransparentMode; + BOOL bMinimizeToTray; + BOOL fUseRecycleBin; + BOOL fNoConfirmDelete; + BOOL bShowToolbar; + BOOL bShowStatusbar; + BOOL bShowDriveBox; + int cxGotoDlg; + int cxOpenWithDlg; + int cyOpenWithDlg; + int cxCopyMoveDlg; + + BOOL bHasQuickview; + + WCHAR tchFilter[DL_FILTER_BUFSIZE]; + BOOL bNegFilter; + BOOL bDefCrNoFilt; + BOOL bDefCrFilter; + COLORREF crNoFilt; + COLORREF crFilter; + COLORREF crCustom[16]; + + WININFO wi; + + WCHAR szCurDir[MAX_PATH + 40]; + DWORD dwFillMask; + int nSortFlags; + BOOL fSortRev; + +} SETTINGS_T, * PSETTINGS_T; + +extern SETTINGS_T Settings; +extern SETTINGS_T Defaults; + //==== Function Declarations ================================================== BOOL InitApplication(HINSTANCE); diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index d22fd8a7a..c4ec9dfc1 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 BETA diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index d277afb18..7000585c9 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -728,6 +728,10 @@ void LoadSettings() IniSectionGetString(Settings2_Section, L"AutoCompleteWordCharSet", Defaults2.AutoCompleteWordCharSet, Settings2.AutoCompleteWordCharSet, COUNTOF(Settings2.AutoCompleteWordCharSet)); + Defaults2.AutoCompleteFillUpChars[0] = L'\0'; + IniSectionGetString(Settings2_Section, L"AutoCompleteFillUpChars", Defaults2.AutoCompleteFillUpChars, + Settings2.AutoCompleteFillUpChars, COUNTOF(Settings2.AutoCompleteFillUpChars)); + StringCchCopyW(Defaults2.TimeStamp, COUNTOF(Defaults2.TimeStamp), L"\\$Date:[^\\$]+\\$ | $Date: %Y/%m/%d %H:%M:%S $"); IniSectionGetString(Settings2_Section, L"TimeStamp", Defaults2.TimeStamp, Settings2.TimeStamp, COUNTOF(Settings2.TimeStamp)); @@ -743,7 +747,6 @@ void LoadSettings() StringCchCopyW(Defaults2.WebTemplate2, COUNTOF(Defaults2.WebTemplate2), L"https://en.wikipedia.org/w/index.php?search=%s"); IniSectionGetString(Settings2_Section, L"WebTemplate2", Defaults2.WebTemplate2, Settings2.WebTemplate2, COUNTOF(Settings2.WebTemplate2)); - // -------------------------------------------------------------------------- const WCHAR* const Settings_Section = L"Settings"; // -------------------------------------------------------------------------- diff --git a/src/Edit.c b/src/Edit.c index 543c7a6ed..b26b4d8d2 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -64,6 +64,9 @@ static char WordCharsAccelerated[ANSI_CHAR_BUFFER] = { '\0' }; static char WhiteSpaceCharsAccelerated[ANSI_CHAR_BUFFER] = { '\0' }; static char PunctuationCharsAccelerated[1] = { '\0' }; // empty! +static char AutoCompleteFillUpChars[64] = { '\0' }; +static bool s_ACFillUpCharsHaveNewLn = false; + // Default Codepage and Character Set #define W_AUTOC_WORD_ANSI1252 L"#$%&@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ" static char AutoCompleteWordCharSet[ANSI_CHAR_BUFFER] = { L'\0' }; @@ -255,6 +258,22 @@ void EditInitWordDelimiter(HWND hwnd) StringCchCopyA(DelimCharsAccel, COUNTOF(DelimCharsAccel), WhiteSpaceCharsDefault); StringCchCatA(DelimCharsAccel, COUNTOF(DelimCharsAccel), lineEnds); + if (StrIsNotEmpty(Settings2.AutoCompleteFillUpChars)) + { + WideCharToMultiByte(Encoding_SciCP, 0, Settings2.AutoCompleteFillUpChars, -1, AutoCompleteFillUpChars, COUNTOF(AutoCompleteFillUpChars), NULL, NULL); + UnSlash(AutoCompleteFillUpChars, Encoding_SciCP); + + s_ACFillUpCharsHaveNewLn = false; + int i = 0; + while (AutoCompleteFillUpChars[i]) { + if ((AutoCompleteFillUpChars[i] == '\r') || (AutoCompleteFillUpChars[i] == '\n')) { + s_ACFillUpCharsHaveNewLn = true; + break; + } + ++i; + } + } + if (StrIsNotEmpty(Settings2.AutoCompleteWordCharSet)) { WideCharToMultiByte(Encoding_SciCP, 0, Settings2.AutoCompleteWordCharSet, -1, AutoCompleteWordCharSet, COUNTOF(AutoCompleteWordCharSet), NULL, NULL); @@ -741,8 +760,8 @@ bool EditCopyAppend(HWND hwnd, bool bAppend) HANDLE const hOld = GetClipboardData(CF_UNICODETEXT); const WCHAR* pszOld = GlobalLock(hOld); - int const _eol_mode = SciCall_GetEOLMode(); - const WCHAR *pszSep = ((_eol_mode == SC_EOL_CRLF) ? L"\r\n" : ((_eol_mode == SC_EOL_CR) ? L"\r" : L"\n")); + WCHAR pszSep[3] = { L'\0' }; + Sci_GetCurrentEOL_W(pszSep); size_t cchNewText = cchTextW; if (pszOld && *pszOld) { @@ -3903,14 +3922,8 @@ void EditWrapToColumn(HWND hwnd,DocPos nColumn/*,int nTabWidth*/) return; } - int cchEOL = 2; - WCHAR wszEOL[] = L"\r\n"; - int const cEOLMode = SciCall_GetEOLMode(); - if (cEOLMode == SC_EOL_CR) - cchEOL = 1; - else if (cEOLMode == SC_EOL_LF) { - cchEOL = 1; wszEOL[0] = L'\n'; - } + WCHAR wszEOL[3] = { L'\0' }; + int const cchEOL = Sci_GetCurrentEOL_W(wszEOL); int cchConvW = 0; DocPos iLineLength = 0; @@ -4065,23 +4078,8 @@ void EditJoinLinesEx(HWND hwnd, bool bPreserveParagraphs, bool bCRLF2Space) return; } - char szEOL[] = "\r\n"; - int cchEOL = 2; - switch (SciCall_GetEOLMode()) - { - case SC_EOL_LF: - szEOL[0] = '\n'; - szEOL[1] = '\0'; - cchEOL = 1; - break; - case SC_EOL_CR: - szEOL[1] = '\0'; - cchEOL = 1; - break; - case SC_EOL_CRLF: - default: - break; - } + char szEOL[3] = { '\0' }; + int const cchEOL = Sci_GetCurrentEOL_A(szEOL); for (int i = 0; i < iSelLength; ++i) { @@ -4208,15 +4206,8 @@ void EditSortLines(HWND hwnd, int iSortFlags) DocLn const iLineCount = iLineEnd - iLineStart + 1; - int const cEOLMode = SciCall_GetEOLMode(); - char mszEOL[] = "\r\n"; - if (cEOLMode == SC_EOL_CR) { - mszEOL[1] = '\0'; - } - else if (cEOLMode == SC_EOL_LF) { - mszEOL[0] = '\n'; - mszEOL[1] = '\0'; - } + char mszEOL[3] = { '\0' }; + Sci_GetCurrentEOL_A(mszEOL); int const _iTabWidth = SciCall_GetTabWidth(); @@ -6705,6 +6696,16 @@ void EditMarkAll(HWND hwnd, char* pszFind, int flags, DocPos rangeStart, DocPos } +//============================================================================= +// +// EditCheckNewLineInACFillUps() +// +bool EditCheckNewLineInACFillUps() +{ + return s_ACFillUpCharsHaveNewLn; +} + + //============================================================================= // // EditAutoCompleteWord() @@ -6901,9 +6902,8 @@ bool EditAutoCompleteWord(HWND hwnd, bool autoInsert) SciCall_AutoCSetIgnoreCase(true); //SendMessage(hwnd, SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR, (WPARAM)SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE, 0); SciCall_AutoCSetChooseSingle(autoInsert); - //SciCall_AutoCSetOrder(SC_ORDER_PERFORMSORT); // already sorted - SciCall_AutoCSetFillups("\t\n\r"); - //SciCall_AutoCSetFillups(Settings.AccelWordNavigation ? WhiteSpaceCharsDefault : WhiteSpaceCharsAccelerated); + //~SciCall_AutoCSetOrder(SC_ORDER_PERFORMSORT); // already sorted + SciCall_AutoCSetFillups(AutoCompleteFillUpChars); ++iWListSize; // zero termination char* const pList = AllocMem(iWListSize, HEAP_ZERO_MEMORY); diff --git a/src/Edit.h b/src/Edit.h index 0f198d778..c713db237 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -110,6 +110,7 @@ void EditFinalizeStyling(HWND hwnd, DocPos iEndPos); void EditUpdateIndicators(HWND hwnd, DocPos startPos, DocPos endPos, bool bClearOnly); void EditSetAccelWordNav(HWND hwnd,bool); bool EditAutoCompleteWord(HWND hwnd,bool); +bool EditCheckNewLineInACFillUps(); void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition); void EditGetBookmarkList(HWND hwnd,LPWSTR pszBookMarks,int cchLength); void EditSetBookmarkList(HWND hwnd,LPCWSTR pszBookMarks); diff --git a/src/Helpers.h b/src/Helpers.h index eeced1a67..31d5f5b5d 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -347,6 +347,7 @@ bool MRU_MergeSave(LPMRULIST pmru,bool,bool,bool); #define MRU_Count(pmru) MRU_Enum((pmru), 0, NULL, 0) //==== UnSlash Functions ====================================================== +unsigned int UnSlash(char* s, UINT cpEdit); void TransformBackslashes(char* pszInput,bool,UINT cpEdit,int* iReplaceMsg); void TransformMetaChars(char* pszInput,bool,int iEOLMode); diff --git a/src/Notepad3.c b/src/Notepad3.c index 27e1767cc..1f5254f1f 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -3091,11 +3091,11 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) } CheckMenuRadioItem(hmenu,IDM_ENCODING_ANSI,IDM_ENCODING_UTF8SIGN,i,MF_BYCOMMAND); - int const _eol_mode = SciCall_GetEOLMode(); - if (_eol_mode == SC_EOL_CRLF) { + int const eol_mode = SciCall_GetEOLMode(); + if (eol_mode == SC_EOL_CRLF) { i = IDM_LINEENDINGS_CRLF; } - else if (_eol_mode == SC_EOL_CR) { + else if (eol_mode == SC_EOL_CR) { i = IDM_LINEENDINGS_CR; } else { @@ -6787,8 +6787,8 @@ static void _HandleAutoIndent(int const charAdded) { // TODO: handle indent after '{' and un-indent on '}' in C/C++ ? // in CRLF mode handle LF only... - int const _eol_mode = SciCall_GetEOLMode(); - if (((SC_EOL_CRLF == _eol_mode) && (charAdded != '\r')) || (SC_EOL_CRLF != _eol_mode)) + int const eol_mode = SciCall_GetEOLMode(); + if (((SC_EOL_CRLF == eol_mode) && (charAdded != '\r')) || (SC_EOL_CRLF != eol_mode)) { DocPos const iCurPos = SciCall_GetCurrentPos(); DocLn const iCurLine = SciCall_LineFromPosition(iCurPos); @@ -7015,6 +7015,33 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific case SCN_CALLTIPCLICK: return 0; + case SCN_AUTOCSELECTION: + { + switch (scn->listCompletionMethod) + { + case SC_AC_TAB: + case SC_AC_COMMAND: + case SC_AC_DOUBLECLICK: + // accepted + break; + + case SC_AC_FILLUP: + // see: SciCall_AutoCSetFillups() -> accepted + break; + + case SC_AC_NEWLINE: + if (!EditCheckNewLineInACFillUps()) { + SciCall_AutoCCancel(); // rejected + PostMessage(Globals.hwndEdit, SCI_NEWLINE, 0, 0); + } + break; + + default: + SciCall_AutoCCancel(); // rejected + break; + } + } + break; case SCN_MODIFIED: { @@ -7394,10 +7421,10 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) case STATUS_EOLMODE: { int i; - int const _eol_mode = SciCall_GetEOLMode(); - if (_eol_mode == SC_EOL_CRLF) + int const eol_mode = SciCall_GetEOLMode(); + if (eol_mode == SC_EOL_CRLF) i = IDM_LINEENDINGS_CRLF; - else if (_eol_mode == SC_EOL_CR) + else if (eol_mode == SC_EOL_CR) i = IDM_LINEENDINGS_CR; else i = IDM_LINEENDINGS_LF; @@ -8632,17 +8659,17 @@ static void _UpdateStatusbarDelayed(bool bForceRedraw) if (s_iStatusbarVisible[STATUS_EOLMODE]) { static int s_iEOLMode = -1; - int const _eol_mode = SciCall_GetEOLMode(); + int const eol_mode = SciCall_GetEOLMode(); - if (bForceRedraw || (s_iEOLMode != _eol_mode)) + if (bForceRedraw || (s_iEOLMode != eol_mode)) { static WCHAR tchEOL[16] = { L'\0' }; - if (_eol_mode == SC_EOL_LF) + if (eol_mode == SC_EOL_LF) { StringCchPrintf(tchStatusBar[STATUS_EOLMODE], txtWidth, (Globals.bDocHasInconsistentEOLs ? _LFi_f : _LF_f), s_mxSBPrefix[STATUS_EOLMODE], s_mxSBPostfix[STATUS_EOLMODE]); } - else if (_eol_mode == SC_EOL_CR) + else if (eol_mode == SC_EOL_CR) { StringCchPrintf(tchStatusBar[STATUS_EOLMODE], txtWidth, (Globals.bDocHasInconsistentEOLs ? _CRi_f : _CR_f), s_mxSBPrefix[STATUS_EOLMODE], s_mxSBPostfix[STATUS_EOLMODE]); @@ -8651,7 +8678,7 @@ static void _UpdateStatusbarDelayed(bool bForceRedraw) StringCchPrintf(tchStatusBar[STATUS_EOLMODE], txtWidth, (Globals.bDocHasInconsistentEOLs ? _CRLFi_f : _CRLF_f), s_mxSBPrefix[STATUS_EOLMODE], s_mxSBPostfix[STATUS_EOLMODE]); } - s_iEOLMode = _eol_mode; + s_iEOLMode = eol_mode; bIsUpdateNeeded = true; } } diff --git a/src/SciCall.h b/src/SciCall.h index 9684c9b30..a19bd58a6 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -539,8 +539,6 @@ DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool) #define Sci_HaveUndoRedoHistory() (SciCall_CanUndo() || SciCall_CanRedo()) -#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1) - #define Sci_GetCurrentLineNumber() SciCall_LineFromPosition(SciCall_GetCurrentPos()) #define Sci_GetLastDocLineNumber() (SciCall_GetLineCount() - 1) @@ -569,6 +567,46 @@ inline DocPos Sci_GetRangeMaxLineLength(DocLn iBeginLine, DocLn iEndLine) { #define Sci_DisableMouseDWellNotification() SciCall_SetMouseDWellTime(SC_TIME_FOREVER) +// ---------------------------------------------------------------------------- + +#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1) + + +inline int Sci_GetCurrentEOL_A(LPCH eol) { + switch (SciCall_GetEOLMode()) { + case SC_EOL_CRLF: + eol[0] = '\r'; eol[1] = '\n'; eol[2] = '\0'; + return 2; + case SC_EOL_CR: + eol[0] = '\r'; eol[1] = '\0'; + return 1; + case SC_EOL_LF: + eol[0] = '\n'; eol[1] = '\0'; + return 1; + default: + return 0; + } +} +// ---------------------------------------------------------------------------- + +inline int Sci_GetCurrentEOL_W(LPWCH eol) { + switch (SciCall_GetEOLMode()) { + case SC_EOL_CRLF: + eol[0] = L'\r'; eol[1] = L'\n'; eol[2] = L'\0'; + return 2; + case SC_EOL_CR: + eol[0] = L'\r'; eol[1] = L'\0'; + return 1; + case SC_EOL_LF: + eol[0] = L'\n'; eol[1] = L'\0'; + return 1; + default: + return 0; + } +} +// ---------------------------------------------------------------------------- + + //============================================================================= #endif //_NP3_SCICALL_H_ diff --git a/src/StyleLexers/styleLexCOFFEESCRIPT.c b/src/StyleLexers/styleLexCOFFEESCRIPT.c index 3a4dca5a6..e731c8df1 100644 --- a/src/StyleLexers/styleLexCOFFEESCRIPT.c +++ b/src/StyleLexers/styleLexCOFFEESCRIPT.c @@ -6,7 +6,7 @@ KEYWORDLIST KeyWords_COFFEESCRIPT = EMPTY_KEYWORDLIST; EDITLEXER lexCOFFEESCRIPT = { -SCLEX_COFFEESCRIPT, IDS_LEX_COFFEE_SCR, L"Coffeescript", L"coffee; Cakefile", L"", +SCLEX_COFFEESCRIPT, IDS_LEX_COFFEE_SCR, L"Coffeescript", L"coffee; cakefile", L"", &KeyWords_COFFEESCRIPT, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_COFFEESCRIPT_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexCONF.c b/src/StyleLexers/styleLexCONF.c index 1b7cf2b6d..b1433ca3a 100644 --- a/src/StyleLexers/styleLexCONF.c +++ b/src/StyleLexers/styleLexCONF.c @@ -116,7 +116,7 @@ KEYWORDLIST KeyWords_CONF = { EDITLEXER lexCONF = { -SCLEX_CONF, IDS_LEX_APC_CFG, L"Apache Config Files", L"conf; cfg; cnf; htaccess; properties; prefs; iface; prop; po; te", L"", +SCLEX_CONF, IDS_LEX_APC_CFG, L"Apache Config Files", L"conf; cfg; cnf; htaccess; prefs; iface; prop; po; te", L"", &KeyWords_CONF, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_CONF_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexCPP.c b/src/StyleLexers/styleLexCPP.c index 1c50c9c66..54d75d2d9 100644 --- a/src/StyleLexers/styleLexCPP.c +++ b/src/StyleLexers/styleLexCPP.c @@ -40,7 +40,7 @@ KEYWORDLIST KeyWords_CPP = { }; EDITLEXER lexCPP = { -SCLEX_CPP, IDS_LEX_CPP_SRC, L"C/C++ Source Code", L"c; cpp; cxx; cc; h; hpp; hxx; hh; m; mm; idl; midl; inl; odl; xpm", L"", +SCLEX_CPP, IDS_LEX_CPP_SRC, L"C/C++ Source Code", L"c; cpp; cxx; cc; h; hpp; hxx; hh; mm; idl; midl; inl; odl; xpm; pch", L"", &KeyWords_CPP, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_C_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexHTML.c b/src/StyleLexers/styleLexHTML.c index d9c3d817b..efa58c706 100644 --- a/src/StyleLexers/styleLexHTML.c +++ b/src/StyleLexers/styleLexHTML.c @@ -60,7 +60,7 @@ KEYWORDLIST KeyWords_HTML = { EDITLEXER lexHTML = { -SCLEX_HTML, IDS_LEX_WEB_SRC, L"Web Source Code", L"html; htm; asp; aspx; shtml; htd; xhtml; php; php3; phtml; htt; cfm; tpl; dtd; hta; htc", L"", +SCLEX_HTML, IDS_LEX_WEB_SRC, L"Web Source Code", L"html; htm; asp; aspx; shtml; htd; xhtml; php; php3; phtml; htt; cfm; tpl; dtd; hta; htc; jsp; mht; jd", L"", &KeyWords_HTML, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, { {MULTI_STYLE(SCE_H_TAG,SCE_H_TAGEND,0,0)}, IDS_LEX_STR_63136, L"HTML Tag", L"fore:#648000", L"" }, diff --git a/src/StyleLexers/styleLexJS.c b/src/StyleLexers/styleLexJS.c index 85836f4e1..28d57c9a6 100644 --- a/src/StyleLexers/styleLexJS.c +++ b/src/StyleLexers/styleLexJS.c @@ -12,7 +12,7 @@ KEYWORDLIST KeyWords_JS = { EDITLEXER lexJS = { -SCLEX_CPP, IDS_LEX_J_SCR, L"JavaScript", L"js; jse; jsm; as", L"", +SCLEX_CPP, IDS_LEX_J_SCR, L"JavaScript", L"js; jse; jsm; as; mjs; qs", L"", &KeyWords_JS, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_C_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexJSON.c b/src/StyleLexers/styleLexJSON.c index d8a89c485..40cae394c 100644 --- a/src/StyleLexers/styleLexJSON.c +++ b/src/StyleLexers/styleLexJSON.c @@ -9,7 +9,7 @@ KEYWORDLIST KeyWords_JSON = { EDITLEXER lexJSON = { -SCLEX_JSON, IDS_LEX_JSON, L"JSON", L"json; eslintrc; jshintrc; jsonld", L"", +SCLEX_JSON, IDS_LEX_JSON, L"JSON", L"json; eslintrc; jshintrc; jsonld; har; ipynb; wxcp; arcconfig", L"", &KeyWords_JSON, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_C_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexLUA.c b/src/StyleLexers/styleLexLUA.c index 657b27c2a..6f749d0bc 100644 --- a/src/StyleLexers/styleLexLUA.c +++ b/src/StyleLexers/styleLexLUA.c @@ -32,7 +32,7 @@ KEYWORDLIST KeyWords_LUA = { EDITLEXER lexLUA = { -SCLEX_LUA, IDS_LEX_LUA, L"Lua Script", L"lua", L"", +SCLEX_LUA, IDS_LEX_LUA, L"Lua Script", L"lua; wlua; nse; luadoc; luax", L"", &KeyWords_LUA, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_LUA_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexMAK.c b/src/StyleLexers/styleLexMAK.c index 959d4d477..7771e68ae 100644 --- a/src/StyleLexers/styleLexMAK.c +++ b/src/StyleLexers/styleLexMAK.c @@ -5,7 +5,7 @@ KEYWORDLIST KeyWords_MAK = EMPTY_KEYWORDLIST; EDITLEXER lexMAK = { -SCLEX_MAKEFILE, IDS_LEX_MAKEFILES, L"Makefiles", L"mak; make; mk; dsp; msc; msvc; am; pro; pri; gmk; ninja", L"", +SCLEX_MAKEFILE, IDS_LEX_MAKEFILES, L"Makefiles", L"mak; make; mk; dsp; msc; msvc; am; pro; pri; gmk; ninja; dsw", L"", &KeyWords_MAK, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_MAKE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexPAS.c b/src/StyleLexers/styleLexPAS.c index 1ee0dab48..40a528c87 100644 --- a/src/StyleLexers/styleLexPAS.c +++ b/src/StyleLexers/styleLexPAS.c @@ -13,7 +13,7 @@ KEYWORDLIST KeyWords_PAS = { EDITLEXER lexPAS = { -SCLEX_PASCAL, IDS_LEX_PASCAL_SRC, L"Pascal Source Code", L"pas; dpr; dpk; dfm; inc; pp", L"", +SCLEX_PASCAL, IDS_LEX_PASCAL_SRC, L"Pascal Source Code", L"pas; dpr; dpk; dfm; pp; lfm; lpr; fpd", L"", &KeyWords_PAS, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_PAS_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexPL.c b/src/StyleLexers/styleLexPL.c index dcac35afc..6f5454766 100644 --- a/src/StyleLexers/styleLexPL.c +++ b/src/StyleLexers/styleLexPL.c @@ -27,7 +27,7 @@ KEYWORDLIST KeyWords_PL = { EDITLEXER lexPL = { -SCLEX_PERL, IDS_LEX_PERL_SCR, L"Perl Script", L"pl; pm; cgi; pod", L"", +SCLEX_PERL, IDS_LEX_PERL_SCR, L"Perl Script", L"pl; pm; cgi; pod; plx; stp", L"", &KeyWords_PL, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_PL_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexPS.c b/src/StyleLexers/styleLexPS.c index 273b28719..8e95be257 100644 --- a/src/StyleLexers/styleLexPS.c +++ b/src/StyleLexers/styleLexPS.c @@ -59,7 +59,7 @@ KEYWORDLIST KeyWords_PS = { EDITLEXER lexPS = { -SCLEX_POWERSHELL, IDS_LEX_PWRSHELL, L"PowerShell Script", L"ps1; psd1; psm1", L"", +SCLEX_POWERSHELL, IDS_LEX_PWRSHELL, L"PowerShell Script", L"ps1; psd1; psm1; psc1", L"", &KeyWords_PS, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_POWERSHELL_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexPY.c b/src/StyleLexers/styleLexPY.c index fb7590cc1..7e44cae74 100644 --- a/src/StyleLexers/styleLexPY.c +++ b/src/StyleLexers/styleLexPY.c @@ -10,7 +10,7 @@ KEYWORDLIST KeyWords_PY = { EDITLEXER lexPY = { -SCLEX_PYTHON, IDS_LEX_PYTHON, L"Python Script", L"py; pyw", L"", +SCLEX_PYTHON, IDS_LEX_PYTHON, L"Python Script", L"py; pyw; pyx; pxd; pxi; boo; empy; cobra; gs", L"", &KeyWords_PY, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_P_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexR.c b/src/StyleLexers/styleLexR.c index a24832d4b..78972650d 100644 --- a/src/StyleLexers/styleLexR.c +++ b/src/StyleLexers/styleLexR.c @@ -79,7 +79,7 @@ KEYWORDLIST KeyWords_R = { EDITLEXER lexR = { -SCLEX_R, IDS_LEX_R_STAT, L"R-S-SPlus Statistics Code", L"R", L"", +SCLEX_R, IDS_LEX_R_STAT, L"R-S-SPlus Statistics Code", L"r, rdata, rds, rda", L"", &KeyWords_R,{ { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_R_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexRUBY.c b/src/StyleLexers/styleLexRUBY.c index d31dc04f2..f8ee31d15 100644 --- a/src/StyleLexers/styleLexRUBY.c +++ b/src/StyleLexers/styleLexRUBY.c @@ -9,7 +9,7 @@ KEYWORDLIST KeyWords_RUBY = { "", "", "", "", "", "", "", "" }; EDITLEXER lexRUBY = { -SCLEX_RUBY, IDS_LEX_RUBY, L"Ruby Script", L"rb; ruby; rbw; rake; rjs; Rakefile; gemspec", L"", +SCLEX_RUBY, IDS_LEX_RUBY, L"Ruby Script", L"rb; ruby; rbw; rake; rjs; rakefile; gemspec; podspec", L"", &KeyWords_RUBY, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_RB_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexStandard.c b/src/StyleLexers/styleLexStandard.c index 0a9868b0a..b999f1626 100644 --- a/src/StyleLexers/styleLexStandard.c +++ b/src/StyleLexers/styleLexStandard.c @@ -51,7 +51,7 @@ SCLEX_NULL, IDS_LEX_STR_63266, L"2nd Common Base", L"", L"", EDITLEXER lexTEXT = { -SCLEX_NULL, IDS_LEX_TEXT_FILES, L"Text Files", L"txt; text; tmp; log; asc; doc; wtx", L"", +SCLEX_NULL, IDS_LEX_TEXT_FILES, L"Text Files", L"txt; text; tmp; log; asc; doc; wtx; csv", L"", &KeyWords_NULL,{ { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, { {STYLE_LINENUMBER}, IDS_LEX_STD_MARGIN, L"Margins and Line Numbers", L"font:Lucida Console; size:-2", L"" }, @@ -71,7 +71,7 @@ SCLEX_NULL, IDS_LEX_ANSI_ART, L"ANSI Art", L"nfo; diz", L"", EDITLEXER lexLATEX = { -SCLEX_LATEX, IDS_LEX_LATEX, L"LaTeX Files", L"tex; latex; sty", L"", +SCLEX_LATEX, IDS_LEX_LATEX, L"LaTeX Files", L"tex; latex; sty; texi; texinfo; txi", L"", &KeyWords_NULL, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_L_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexTCL.c b/src/StyleLexers/styleLexTCL.c index 520e41096..79ae6f8d1 100644 --- a/src/StyleLexers/styleLexTCL.c +++ b/src/StyleLexers/styleLexTCL.c @@ -33,7 +33,7 @@ KEYWORDLIST KeyWords_TCL = { EDITLEXER lexTCL = { -SCLEX_TCL, IDS_LEX_TCL, L"Tcl Script", L"tcl; itcl", L"", +SCLEX_TCL, IDS_LEX_TCL, L"Tcl Script", L"tcl; itcl; tm", L"", &KeyWords_TCL, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, //{ {SCE_TCL_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, diff --git a/src/StyleLexers/styleLexXML.c b/src/StyleLexers/styleLexXML.c index 0a5d8a3d1..f623df4ee 100644 --- a/src/StyleLexers/styleLexXML.c +++ b/src/StyleLexers/styleLexXML.c @@ -6,7 +6,7 @@ KEYWORDLIST KeyWords_XML = EMPTY_KEYWORDLIST; EDITLEXER lexXML = { -SCLEX_XML, IDS_LEX_XML_DOC, L"XML Document", L"xml; xsl; rss; svg; xul; xsd; xslt; axl; rdf; xaml; vcproj", L"", +SCLEX_XML, IDS_LEX_XML_DOC, L"XML Document", L"xml; xsl; rss; svg; xul; xsd; xslt; axl; rdf; xaml; vcproj; ffs_gui; nzb; resx; plist; xrc; fbp", L"", &KeyWords_XML, { { {STYLE_DEFAULT}, IDS_LEX_STR_63126, L"Default", L"", L"" }, { {MULTI_STYLE(SCE_H_TAG,SCE_H_TAGUNKNOWN,SCE_H_TAGEND,0)}, IDS_LEX_STR_63187, L"XML Tag", L"fore:#881280", L"" }, diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 79989ee0b..727412935 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -502,6 +502,7 @@ typedef struct _settings2_t WCHAR FileBrowserPath[MAX_PATH]; WCHAR AppUserModelID[32]; + WCHAR AutoCompleteFillUpChars[64]; WCHAR ExtendedWhiteSpaceChars[ANSI_CHAR_BUFFER + 1]; WCHAR AutoCompleteWordCharSet[ANSI_CHAR_BUFFER + 1]; WCHAR TimeStamp[128]; diff --git a/src/Version.h b/src/Version.h index 34dc5092d..b0f3f6012 100644 --- a/src/Version.h +++ b/src/Version.h @@ -66,10 +66,16 @@ // Compiler specific #if defined(_MSC_VER) - #if (_MSC_VER >= 1920) - #if(_MSC_FULL_VER >= 192127702) + #if (_MSC_VER >= 1922) + #if(_MSC_FULL_VER >= 192227905) + #define VER_CPL MS Visual C++ 2019 v16.2.0 + #endif + #elif (_MSC_VER >= 1921) + #if(_MSC_FULL_VER >= 192127702) #define VER_CPL MS Visual C++ 2019 v16.1.(0-6) - #elif(_MSC_FULL_VER >= 192027508) + #endif + #elif (_MSC_VER >= 1920) + #if(_MSC_FULL_VER >= 192027508) #define VER_CPL MS Visual C++ 2019 v16.0.(0-4) #elif(_MSC_FULL_VER >= 192027027) #define VER_CPL MS Visual C++ 2019 v16.0.Prev(1-4) diff --git a/src/VersionEx.h b/src/VersionEx.h index 7b64fbf3f..6a6f47e22 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -7,8 +7,8 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 19 -#define VERSION_REV 723 -#define VERSION_BUILD 2404 +#define VERSION_REV 725 +#define VERSION_BUILD 2406 #define SCINTILLA_VER 420 #define ONIGURUMA_REGEX_VER 6.9.3 #define VERSION_PATCH BETA diff --git a/test/test_files/extensions/AHK/AHKL.ahk b/test/test_files/StyleLexers/styleLexAHKL/AHKL.ahk similarity index 100% rename from test/test_files/extensions/AHK/AHKL.ahk rename to test/test_files/StyleLexers/styleLexAHKL/AHKL.ahk diff --git a/test/test_files/extensions/NFO/DEADLINE.nfo b/test/test_files/StyleLexers/styleLexANSI/DEADLINE.nfo similarity index 100% rename from test/test_files/extensions/NFO/DEADLINE.nfo rename to test/test_files/StyleLexers/styleLexANSI/DEADLINE.nfo diff --git a/test/test_files/extensions/DIZ/FILE_ID.DIZ b/test/test_files/StyleLexers/styleLexANSI/FILE_ID.DIZ similarity index 100% rename from test/test_files/extensions/DIZ/FILE_ID.DIZ rename to test/test_files/StyleLexers/styleLexANSI/FILE_ID.DIZ diff --git a/test/test_files/extensions/NFO/NFO_01 - BOX.nfo b/test/test_files/StyleLexers/styleLexANSI/NFO_01 - BOX.nfo similarity index 100% rename from test/test_files/extensions/NFO/NFO_01 - BOX.nfo rename to test/test_files/StyleLexers/styleLexANSI/NFO_01 - BOX.nfo diff --git a/test/test_files/extensions/NFO/NFO_02 - PENTIUM.nfo b/test/test_files/StyleLexers/styleLexANSI/NFO_02 - PENTIUM.nfo similarity index 100% rename from test/test_files/extensions/NFO/NFO_02 - PENTIUM.nfo rename to test/test_files/StyleLexers/styleLexANSI/NFO_02 - PENTIUM.nfo diff --git a/test/test_files/extensions/NFO/acme.nfo b/test/test_files/StyleLexers/styleLexANSI/acme.nfo similarity index 100% rename from test/test_files/extensions/NFO/acme.nfo rename to test/test_files/StyleLexers/styleLexANSI/acme.nfo diff --git a/test/test_files/extensions/DIZ/file01_id.diz b/test/test_files/StyleLexers/styleLexANSI/file01_id.diz similarity index 100% rename from test/test_files/extensions/DIZ/file01_id.diz rename to test/test_files/StyleLexers/styleLexANSI/file01_id.diz diff --git a/test/test_files/extensions/DIZ/file02_id.diz b/test/test_files/StyleLexers/styleLexANSI/file02_id.diz similarity index 100% rename from test/test_files/extensions/DIZ/file02_id.diz rename to test/test_files/StyleLexers/styleLexANSI/file02_id.diz diff --git a/test/test_files/extensions/DIZ/file03_id.diz b/test/test_files/StyleLexers/styleLexANSI/file03_id.diz similarity index 100% rename from test/test_files/extensions/DIZ/file03_id.diz rename to test/test_files/StyleLexers/styleLexANSI/file03_id.diz diff --git a/test/test_files/extensions/NFO/jerry.nfo b/test/test_files/StyleLexers/styleLexANSI/jerry.nfo similarity index 100% rename from test/test_files/extensions/NFO/jerry.nfo rename to test/test_files/StyleLexers/styleLexANSI/jerry.nfo diff --git a/test/test_files/extensions/NFO/wwc94.nfo b/test/test_files/StyleLexers/styleLexANSI/wwc94.nfo similarity index 100% rename from test/test_files/extensions/NFO/wwc94.nfo rename to test/test_files/StyleLexers/styleLexANSI/wwc94.nfo diff --git a/test/test_files/extensions/ASM/lowhelpr.asm b/test/test_files/StyleLexers/styleLexASM/lowhelpr.asm similarity index 100% rename from test/test_files/extensions/ASM/lowhelpr.asm rename to test/test_files/StyleLexers/styleLexASM/lowhelpr.asm diff --git a/test/test_files/extensions/AU3/Configure_NP3 (Craigo-).au3 b/test/test_files/StyleLexers/styleLexAU3/Configure_NP3 (Craigo-).au3 similarity index 100% rename from test/test_files/extensions/AU3/Configure_NP3 (Craigo-).au3 rename to test/test_files/StyleLexers/styleLexAU3/Configure_NP3 (Craigo-).au3 diff --git a/test/test_files/extensions/AU3/clipboard_logger.au3 b/test/test_files/StyleLexers/styleLexAU3/clipboard_logger.au3 similarity index 100% rename from test/test_files/extensions/AU3/clipboard_logger.au3 rename to test/test_files/StyleLexers/styleLexAU3/clipboard_logger.au3 diff --git a/test/test_files/extensions/AU3/environment.au3 b/test/test_files/StyleLexers/styleLexAU3/environment.au3 similarity index 100% rename from test/test_files/extensions/AU3/environment.au3 rename to test/test_files/StyleLexers/styleLexAU3/environment.au3 diff --git a/test/test_files/extensions/AU3/evernote_details.au3 b/test/test_files/StyleLexers/styleLexAU3/evernote_details.au3 similarity index 100% rename from test/test_files/extensions/AU3/evernote_details.au3 rename to test/test_files/StyleLexers/styleLexAU3/evernote_details.au3 diff --git a/test/test_files/extensions/AU3/free_diskspace.au3 b/test/test_files/StyleLexers/styleLexAU3/free_diskspace.au3 similarity index 100% rename from test/test_files/extensions/AU3/free_diskspace.au3 rename to test/test_files/StyleLexers/styleLexAU3/free_diskspace.au3 diff --git a/test/test_files/extensions/AU3/get_putty_sessions.au3 b/test/test_files/StyleLexers/styleLexAU3/get_putty_sessions.au3 similarity index 100% rename from test/test_files/extensions/AU3/get_putty_sessions.au3 rename to test/test_files/StyleLexers/styleLexAU3/get_putty_sessions.au3 diff --git a/test/test_files/extensions/AU3/logoff.au3 b/test/test_files/StyleLexers/styleLexAU3/logoff.au3 similarity index 100% rename from test/test_files/extensions/AU3/logoff.au3 rename to test/test_files/StyleLexers/styleLexAU3/logoff.au3 diff --git a/test/test_files/extensions/AU3/security_eventlog.au3 b/test/test_files/StyleLexers/styleLexAU3/security_eventlog.au3 similarity index 100% rename from test/test_files/extensions/AU3/security_eventlog.au3 rename to test/test_files/StyleLexers/styleLexAU3/security_eventlog.au3 diff --git a/test/test_files/extensions/AWK/mve.awk b/test/test_files/StyleLexers/styleLexAwk/mve.awk similarity index 100% rename from test/test_files/extensions/AWK/mve.awk rename to test/test_files/StyleLexers/styleLexAwk/mve.awk diff --git a/test/test_files/extensions/SH/autogen.sh b/test/test_files/StyleLexers/styleLexBASH/autogen.sh similarity index 100% rename from test/test_files/extensions/SH/autogen.sh rename to test/test_files/StyleLexers/styleLexBASH/autogen.sh diff --git a/test/test_files/extensions/SH/backup.sh b/test/test_files/StyleLexers/styleLexBASH/backup.sh similarity index 100% rename from test/test_files/extensions/SH/backup.sh rename to test/test_files/StyleLexers/styleLexBASH/backup.sh diff --git a/test/test_files/extensions/CSH/gawk.csh b/test/test_files/StyleLexers/styleLexBASH/gawk.csh similarity index 100% rename from test/test_files/extensions/CSH/gawk.csh rename to test/test_files/StyleLexers/styleLexBASH/gawk.csh diff --git a/test/test_files/extensions/SH/gettext.sh b/test/test_files/StyleLexers/styleLexBASH/gettext.sh similarity index 100% rename from test/test_files/extensions/SH/gettext.sh rename to test/test_files/StyleLexers/styleLexBASH/gettext.sh diff --git a/test/test_files/extensions/CSH/perlbin.csh b/test/test_files/StyleLexers/styleLexBASH/perlbin.csh similarity index 100% rename from test/test_files/extensions/CSH/perlbin.csh rename to test/test_files/StyleLexers/styleLexBASH/perlbin.csh diff --git a/test/test_files/extensions/BAT/BAT_01.bat b/test/test_files/StyleLexers/styleLexBAT/BAT_01.bat similarity index 100% rename from test/test_files/extensions/BAT/BAT_01.bat rename to test/test_files/StyleLexers/styleLexBAT/BAT_01.bat diff --git a/test/test_files/extensions/CMD/CMD_01.cmd b/test/test_files/StyleLexers/styleLexBAT/CMD_01.cmd similarity index 100% rename from test/test_files/extensions/CMD/CMD_01.cmd rename to test/test_files/StyleLexers/styleLexBAT/CMD_01.cmd diff --git a/test/test_files/extensions/COFFEE/coffeelint.coffee b/test/test_files/StyleLexers/styleLexCOFFEESCRIPT/coffeelint.coffee similarity index 100% rename from test/test_files/extensions/COFFEE/coffeelint.coffee rename to test/test_files/StyleLexers/styleLexCOFFEESCRIPT/coffeelint.coffee diff --git a/test/test_files/extensions/COFFEE/commandline.coffee b/test/test_files/StyleLexers/styleLexCOFFEESCRIPT/commandline.coffee similarity index 100% rename from test/test_files/extensions/COFFEE/commandline.coffee rename to test/test_files/StyleLexers/styleLexCOFFEESCRIPT/commandline.coffee diff --git a/test/test_files/extensions/INI/INI_Notepad3_01.ini b/test/test_files/StyleLexers/styleLexCONF/INI_Notepad3_01.ini similarity index 100% rename from test/test_files/extensions/INI/INI_Notepad3_01.ini rename to test/test_files/StyleLexers/styleLexCONF/INI_Notepad3_01.ini diff --git a/test/test_files/extensions/INI/INI_Old_Reg_01.ini b/test/test_files/StyleLexers/styleLexCONF/INI_Old_Reg_01.ini similarity index 100% rename from test/test_files/extensions/INI/INI_Old_Reg_01.ini rename to test/test_files/StyleLexers/styleLexCONF/INI_Old_Reg_01.ini diff --git a/test/test_files/extensions/CFG/WildCard.0809.cfg b/test/test_files/StyleLexers/styleLexCONF/WildCard.0809.cfg similarity index 100% rename from test/test_files/extensions/CFG/WildCard.0809.cfg rename to test/test_files/StyleLexers/styleLexCONF/WildCard.0809.cfg diff --git a/test/test_files/extensions/CONF/fonts.conf b/test/test_files/StyleLexers/styleLexCONF/fonts.conf similarity index 100% rename from test/test_files/extensions/CONF/fonts.conf rename to test/test_files/StyleLexers/styleLexCONF/fonts.conf diff --git a/test/test_files/extensions/CONF/jsl.node.conf b/test/test_files/StyleLexers/styleLexCONF/jsl.node.conf similarity index 100% rename from test/test_files/extensions/CONF/jsl.node.conf rename to test/test_files/StyleLexers/styleLexCONF/jsl.node.conf diff --git a/test/test_files/extensions/CFG/mscormmc.cfg b/test/test_files/StyleLexers/styleLexCONF/mscormmc.cfg similarity index 100% rename from test/test_files/extensions/CFG/mscormmc.cfg rename to test/test_files/StyleLexers/styleLexCONF/mscormmc.cfg diff --git a/test/test_files/extensions/CPP/Config.cpp b/test/test_files/StyleLexers/styleLexCPP/Config.cpp similarity index 100% rename from test/test_files/extensions/CPP/Config.cpp rename to test/test_files/StyleLexers/styleLexCPP/Config.cpp diff --git a/test/test_files/extensions/CXX/DBCS.cxx b/test/test_files/StyleLexers/styleLexCPP/DBCS.cxx similarity index 100% rename from test/test_files/extensions/CXX/DBCS.cxx rename to test/test_files/StyleLexers/styleLexCPP/DBCS.cxx diff --git a/test/test_files/extensions/CXX/DefaultLexer.cxx b/test/test_files/StyleLexers/styleLexCPP/DefaultLexer.cxx similarity index 100% rename from test/test_files/extensions/CXX/DefaultLexer.cxx rename to test/test_files/StyleLexers/styleLexCPP/DefaultLexer.cxx diff --git a/test/test_files/extensions/C/Notepad3.c b/test/test_files/StyleLexers/styleLexCPP/Notepad3.c similarity index 100% rename from test/test_files/extensions/C/Notepad3.c rename to test/test_files/StyleLexers/styleLexCPP/Notepad3.c diff --git a/test/test_files/extensions/CS/SecurityPage.cs b/test/test_files/StyleLexers/styleLexCS/SecurityPage.cs similarity index 100% rename from test/test_files/extensions/CS/SecurityPage.cs rename to test/test_files/StyleLexers/styleLexCS/SecurityPage.cs diff --git a/test/test_files/extensions/CSS/markdown.css b/test/test_files/StyleLexers/styleLexCSS/markdown.css similarity index 100% rename from test/test_files/extensions/CSS/markdown.css rename to test/test_files/StyleLexers/styleLexCSS/markdown.css diff --git a/test/test_files/extensions/CMAKE/minizip-exports.cmake b/test/test_files/StyleLexers/styleLexCmake/minizip-exports.cmake similarity index 100% rename from test/test_files/extensions/CMAKE/minizip-exports.cmake rename to test/test_files/StyleLexers/styleLexCmake/minizip-exports.cmake diff --git a/test/test_files/extensions/CMAKE/symbols.cmake b/test/test_files/StyleLexers/styleLexCmake/symbols.cmake similarity index 100% rename from test/test_files/extensions/CMAKE/symbols.cmake rename to test/test_files/StyleLexers/styleLexCmake/symbols.cmake diff --git a/test/test_files/extensions/DIFF/Fix broken Style Scheme Export (#1409).diff b/test/test_files/StyleLexers/styleLexDIFF/Fix broken Style Scheme Export (#1409).diff similarity index 100% rename from test/test_files/extensions/DIFF/Fix broken Style Scheme Export (#1409).diff rename to test/test_files/StyleLexers/styleLexDIFF/Fix broken Style Scheme Export (#1409).diff diff --git a/test/test_files/extensions/PATCH/Fix broken Style Scheme Export (#1409).patch b/test/test_files/StyleLexers/styleLexDIFF/Fix broken Style Scheme Export (#1409).patch similarity index 100% rename from test/test_files/extensions/PATCH/Fix broken Style Scheme Export (#1409).patch rename to test/test_files/StyleLexers/styleLexDIFF/Fix broken Style Scheme Export (#1409).patch diff --git a/test/test_files/extensions/DIFF/No pre-defined font for Text Files (#1445).diff b/test/test_files/StyleLexers/styleLexDIFF/No pre-defined font for Text Files (#1445).diff similarity index 100% rename from test/test_files/extensions/DIFF/No pre-defined font for Text Files (#1445).diff rename to test/test_files/StyleLexers/styleLexDIFF/No pre-defined font for Text Files (#1445).diff diff --git a/test/test_files/extensions/PATCH/No pre-defined font for Text Files (#1445).patch b/test/test_files/StyleLexers/styleLexDIFF/No pre-defined font for Text Files (#1445).patch similarity index 100% rename from test/test_files/extensions/PATCH/No pre-defined font for Text Files (#1445).patch rename to test/test_files/StyleLexers/styleLexDIFF/No pre-defined font for Text Files (#1445).patch diff --git a/test/test_files/extensions/PATCH/float.patch b/test/test_files/StyleLexers/styleLexDIFF/float.patch similarity index 100% rename from test/test_files/extensions/PATCH/float.patch rename to test/test_files/StyleLexers/styleLexDIFF/float.patch diff --git a/test/test_files/extensions/GO/Go_goroutine_channel.go b/test/test_files/StyleLexers/styleLexGo/Go_goroutine_channel.go similarity index 100% rename from test/test_files/extensions/GO/Go_goroutine_channel.go rename to test/test_files/StyleLexers/styleLexGo/Go_goroutine_channel.go diff --git a/test/test_files/extensions/HTML/Design.html b/test/test_files/StyleLexers/styleLexHTML/Design.html similarity index 100% rename from test/test_files/extensions/HTML/Design.html rename to test/test_files/StyleLexers/styleLexHTML/Design.html diff --git a/test/test_files/extensions/ISS/USetup.iss b/test/test_files/StyleLexers/styleLexINNO/USetup.iss similarity index 100% rename from test/test_files/extensions/ISS/USetup.iss rename to test/test_files/StyleLexers/styleLexINNO/USetup.iss diff --git a/test/test_files/extensions/ISS/notepad3_setup.iss b/test/test_files/StyleLexers/styleLexINNO/notepad3_setup.iss similarity index 100% rename from test/test_files/extensions/ISS/notepad3_setup.iss rename to test/test_files/StyleLexers/styleLexINNO/notepad3_setup.iss diff --git a/test/test_files/extensions/JAVA/DecryptNotepad3.java b/test/test_files/StyleLexers/styleLexJAVA/DecryptNotepad3.java similarity index 100% rename from test/test_files/extensions/JAVA/DecryptNotepad3.java rename to test/test_files/StyleLexers/styleLexJAVA/DecryptNotepad3.java diff --git a/test/test_files/extensions/JS/environment.js b/test/test_files/StyleLexers/styleLexJS/environment.js similarity index 100% rename from test/test_files/extensions/JS/environment.js rename to test/test_files/StyleLexers/styleLexJS/environment.js diff --git a/test/test_files/extensions/JS/pythonMain.js b/test/test_files/StyleLexers/styleLexJS/pythonMain.js similarity index 100% rename from test/test_files/extensions/JS/pythonMain.js rename to test/test_files/StyleLexers/styleLexJS/pythonMain.js diff --git a/test/test_files/extensions/JSON/sourcetreeconfig.json b/test/test_files/StyleLexers/styleLexJSON/sourcetreeconfig.json similarity index 100% rename from test/test_files/extensions/JSON/sourcetreeconfig.json rename to test/test_files/StyleLexers/styleLexJSON/sourcetreeconfig.json diff --git a/test/test_files/extensions/MAK/scintilla.mak b/test/test_files/StyleLexers/styleLexMAK/scintilla.mak similarity index 100% rename from test/test_files/extensions/MAK/scintilla.mak rename to test/test_files/StyleLexers/styleLexMAK/scintilla.mak diff --git a/test/test_files/extensions/MD/README.md b/test/test_files/StyleLexers/styleLexMARKDOWN/README.md similarity index 100% rename from test/test_files/extensions/MD/README.md rename to test/test_files/StyleLexers/styleLexMARKDOWN/README.md diff --git a/test/test_files/extensions/M/ThinICAnew.m b/test/test_files/StyleLexers/styleLexMATLAB/ThinICAnew.m similarity index 100% rename from test/test_files/extensions/M/ThinICAnew.m rename to test/test_files/StyleLexers/styleLexMATLAB/ThinICAnew.m diff --git a/test/test_files/extensions/M/bresenham.m b/test/test_files/StyleLexers/styleLexMATLAB/bresenham.m similarity index 100% rename from test/test_files/extensions/M/bresenham.m rename to test/test_files/StyleLexers/styleLexMATLAB/bresenham.m diff --git a/test/test_files/extensions/M/evidence.m b/test/test_files/StyleLexers/styleLexMATLAB/evidence.m similarity index 100% rename from test/test_files/extensions/M/evidence.m rename to test/test_files/StyleLexers/styleLexMATLAB/evidence.m diff --git a/test/test_files/extensions/M/example.m b/test/test_files/StyleLexers/styleLexMATLAB/example.m similarity index 100% rename from test/test_files/extensions/M/example.m rename to test/test_files/StyleLexers/styleLexMATLAB/example.m diff --git a/test/test_files/extensions/NSI/GeneratorWizard.nsi b/test/test_files/StyleLexers/styleLexNSIS/GeneratorWizard.nsi similarity index 100% rename from test/test_files/extensions/NSI/GeneratorWizard.nsi rename to test/test_files/StyleLexers/styleLexNSIS/GeneratorWizard.nsi diff --git a/test/test_files/extensions/NSI/PortableApps.comLauncher.nsi b/test/test_files/StyleLexers/styleLexNSIS/PortableApps.comLauncher.nsi similarity index 100% rename from test/test_files/extensions/NSI/PortableApps.comLauncher.nsi rename to test/test_files/StyleLexers/styleLexNSIS/PortableApps.comLauncher.nsi diff --git a/test/test_files/extensions/NIM/aliases.nim b/test/test_files/StyleLexers/styleLexNim/aliases.nim similarity index 100% rename from test/test_files/extensions/NIM/aliases.nim rename to test/test_files/StyleLexers/styleLexNim/aliases.nim diff --git a/test/test_files/extensions/NIM/sugar.nim b/test/test_files/StyleLexers/styleLexNim/sugar.nim similarity index 100% rename from test/test_files/extensions/NIM/sugar.nim rename to test/test_files/StyleLexers/styleLexNim/sugar.nim diff --git a/test/test_files/extensions/PAS/nsis.pas b/test/test_files/StyleLexers/styleLexPAS/nsis.pas similarity index 100% rename from test/test_files/extensions/PAS/nsis.pas rename to test/test_files/StyleLexers/styleLexPAS/nsis.pas diff --git a/test/test_files/extensions/PL/CA.pl b/test/test_files/StyleLexers/styleLexPL/CA.pl similarity index 100% rename from test/test_files/extensions/PL/CA.pl rename to test/test_files/StyleLexers/styleLexPL/CA.pl diff --git a/test/test_files/extensions/PL/svn.pl b/test/test_files/StyleLexers/styleLexPL/svn.pl similarity index 100% rename from test/test_files/extensions/PL/svn.pl rename to test/test_files/StyleLexers/styleLexPL/svn.pl diff --git a/test/test_files/extensions/PROPERTIES/html.properties b/test/test_files/StyleLexers/styleLexPROPS/html.properties similarity index 100% rename from test/test_files/extensions/PROPERTIES/html.properties rename to test/test_files/StyleLexers/styleLexPROPS/html.properties diff --git a/test/test_files/extensions/INF/usbxhci.inf b/test/test_files/StyleLexers/styleLexPROPS/usbxhci.inf similarity index 100% rename from test/test_files/extensions/INF/usbxhci.inf rename to test/test_files/StyleLexers/styleLexPROPS/usbxhci.inf diff --git a/test/test_files/extensions/PS1/PS1_Version_NP3.ps1 b/test/test_files/StyleLexers/styleLexPS/PS1_Version_NP3.ps1 similarity index 100% rename from test/test_files/extensions/PS1/PS1_Version_NP3.ps1 rename to test/test_files/StyleLexers/styleLexPS/PS1_Version_NP3.ps1 diff --git a/test/test_files/extensions/PY/python.py b/test/test_files/StyleLexers/styleLexPY/python.py similarity index 100% rename from test/test_files/extensions/PY/python.py rename to test/test_files/StyleLexers/styleLexPY/python.py diff --git a/test/test_files/extensions/RC/np3_en_us.rc b/test/test_files/StyleLexers/styleLexRC/np3_en_us.rc similarity index 100% rename from test/test_files/extensions/RC/np3_en_us.rc rename to test/test_files/StyleLexers/styleLexRC/np3_en_us.rc diff --git a/test/test_files/extensions/RB/test.rb b/test/test_files/StyleLexers/styleLexRUBY/test.rb similarity index 100% rename from test/test_files/extensions/RB/test.rb rename to test/test_files/StyleLexers/styleLexRUBY/test.rb diff --git a/test/test_files/extensions/RB/test_erb.rb b/test/test_files/StyleLexers/styleLexRUBY/test_erb.rb similarity index 100% rename from test/test_files/extensions/RB/test_erb.rb rename to test/test_files/StyleLexers/styleLexRUBY/test_erb.rb diff --git a/test/test_files/extensions/RB/test_logger.rb b/test/test_files/StyleLexers/styleLexRUBY/test_logger.rb similarity index 100% rename from test/test_files/extensions/RB/test_logger.rb rename to test/test_files/StyleLexers/styleLexRUBY/test_logger.rb diff --git a/test/test_files/extensions/REG/REG_01.reg b/test/test_files/StyleLexers/styleLexRegistry/REG_01.reg similarity index 100% rename from test/test_files/extensions/REG/REG_01.reg rename to test/test_files/StyleLexers/styleLexRegistry/REG_01.reg diff --git a/test/test_files/extensions/REG/REG_02.reg b/test/test_files/StyleLexers/styleLexRegistry/REG_02.reg similarity index 100% rename from test/test_files/extensions/REG/REG_02.reg rename to test/test_files/StyleLexers/styleLexRegistry/REG_02.reg diff --git a/test/test_files/extensions/REG/Registry.reg b/test/test_files/StyleLexers/styleLexRegistry/Registry.reg similarity index 100% rename from test/test_files/extensions/REG/Registry.reg rename to test/test_files/StyleLexers/styleLexRegistry/Registry.reg diff --git a/test/test_files/extensions/RS/Rust.rs b/test/test_files/StyleLexers/styleLexRust/Rust.rs similarity index 100% rename from test/test_files/extensions/RS/Rust.rs rename to test/test_files/StyleLexers/styleLexRust/Rust.rs diff --git a/test/test_files/extensions/SQL/SQL-File-10-Rows.sql b/test/test_files/StyleLexers/styleLexSQL/SQL-File-10-Rows.sql similarity index 100% rename from test/test_files/extensions/SQL/SQL-File-10-Rows.sql rename to test/test_files/StyleLexers/styleLexSQL/SQL-File-10-Rows.sql diff --git a/test/test_files/extensions/SQL/SQL-TestData.sql b/test/test_files/StyleLexers/styleLexSQL/SQL-TestData.sql similarity index 100% rename from test/test_files/extensions/SQL/SQL-TestData.sql rename to test/test_files/StyleLexers/styleLexSQL/SQL-TestData.sql diff --git a/test/test_files/extensions/TCL/branch_create.tcl b/test/test_files/StyleLexers/styleLexTCL/branch_create.tcl similarity index 100% rename from test/test_files/extensions/TCL/branch_create.tcl rename to test/test_files/StyleLexers/styleLexTCL/branch_create.tcl diff --git a/test/test_files/extensions/TCL/commit.tcl b/test/test_files/StyleLexers/styleLexTCL/commit.tcl similarity index 100% rename from test/test_files/extensions/TCL/commit.tcl rename to test/test_files/StyleLexers/styleLexTCL/commit.tcl diff --git a/test/test_files/extensions/TCL/option.tcl b/test/test_files/StyleLexers/styleLexTCL/option.tcl similarity index 100% rename from test/test_files/extensions/TCL/option.tcl rename to test/test_files/StyleLexers/styleLexTCL/option.tcl diff --git a/test/test_files/extensions/LOG/LOG_01_log.log b/test/test_files/StyleLexers/styleLexTEXT/LOG_01_log.log similarity index 100% rename from test/test_files/extensions/LOG/LOG_01_log.log rename to test/test_files/StyleLexers/styleLexTEXT/LOG_01_log.log diff --git a/test/test_files/extensions/TXT/License.txt b/test/test_files/StyleLexers/styleLexTEXT/License.txt similarity index 100% rename from test/test_files/extensions/TXT/License.txt rename to test/test_files/StyleLexers/styleLexTEXT/License.txt diff --git a/test/test_files/extensions/TXT/Malayan_Problem.txt b/test/test_files/StyleLexers/styleLexTEXT/Malayan_Problem.txt similarity index 100% rename from test/test_files/extensions/TXT/Malayan_Problem.txt rename to test/test_files/StyleLexers/styleLexTEXT/Malayan_Problem.txt diff --git a/test/test_files/extensions/CSV/SampleCSVFile_1kb.csv b/test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_1kb.csv similarity index 100% rename from test/test_files/extensions/CSV/SampleCSVFile_1kb.csv rename to test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_1kb.csv diff --git a/test/test_files/extensions/CSV/SampleCSVFile_2kb.csv b/test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_2kb.csv similarity index 100% rename from test/test_files/extensions/CSV/SampleCSVFile_2kb.csv rename to test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_2kb.csv diff --git a/test/test_files/extensions/CSV/SampleCSVFile_4kb.csv b/test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_4kb.csv similarity index 100% rename from test/test_files/extensions/CSV/SampleCSVFile_4kb.csv rename to test/test_files/StyleLexers/styleLexTEXT/SampleCSVFile_4kb.csv diff --git a/test/test_files/extensions/TXT/TXT_Readme_01.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_Readme_01.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_Readme_01.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_Readme_01.txt diff --git a/test/test_files/extensions/TXT/TXT_Readme_02.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_Readme_02.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_Readme_02.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_Readme_02.txt diff --git a/test/test_files/extensions/TXT/TXT_Test_20_Long_Lines.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_Test_20_Long_Lines.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_Test_20_Long_Lines.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_Test_20_Long_Lines.txt diff --git a/test/test_files/extensions/TXT/TXT_The_quick_brown_fox.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_The_quick_brown_fox.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_The_quick_brown_fox.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_The_quick_brown_fox.txt diff --git a/test/test_files/extensions/TXT/TXT_Word-Wrapped_1_Lines.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_Word-Wrapped_1_Lines.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_Word-Wrapped_1_Lines.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_Word-Wrapped_1_Lines.txt diff --git a/test/test_files/extensions/TXT/TXT_Word-Wrapped_many_Lines.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_Word-Wrapped_many_Lines.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_Word-Wrapped_many_Lines.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_Word-Wrapped_many_Lines.txt diff --git a/test/test_files/extensions/TXT/TXT_vertical-selection-bug.txt b/test/test_files/StyleLexers/styleLexTEXT/TXT_vertical-selection-bug.txt similarity index 100% rename from test/test_files/extensions/TXT/TXT_vertical-selection-bug.txt rename to test/test_files/StyleLexers/styleLexTEXT/TXT_vertical-selection-bug.txt diff --git a/test/test_files/extensions/TXT/regex_find.txt b/test/test_files/StyleLexers/styleLexTEXT/regex_find.txt similarity index 100% rename from test/test_files/extensions/TXT/regex_find.txt rename to test/test_files/StyleLexers/styleLexTEXT/regex_find.txt diff --git a/test/test_files/extensions/TXT/strange_chacter_visual_artefacts.txt b/test/test_files/StyleLexers/styleLexTEXT/strange_chacter_visual_artefacts.txt similarity index 100% rename from test/test_files/extensions/TXT/strange_chacter_visual_artefacts.txt rename to test/test_files/StyleLexers/styleLexTEXT/strange_chacter_visual_artefacts.txt diff --git a/test/test_files/extensions/TOML/TOML.toml b/test/test_files/StyleLexers/styleLexTOML/TOML.toml similarity index 100% rename from test/test_files/extensions/TOML/TOML.toml rename to test/test_files/StyleLexers/styleLexTOML/TOML.toml diff --git a/test/test_files/extensions/VBS/VBS_01.vbs b/test/test_files/StyleLexers/styleLexVBS/VBS_01.vbs similarity index 100% rename from test/test_files/extensions/VBS/VBS_01.vbs rename to test/test_files/StyleLexers/styleLexVBS/VBS_01.vbs diff --git a/test/test_files/extensions/VBS/VBS_02.vbs b/test/test_files/StyleLexers/styleLexVBS/VBS_02.vbs similarity index 100% rename from test/test_files/extensions/VBS/VBS_02.vbs rename to test/test_files/StyleLexers/styleLexVBS/VBS_02.vbs diff --git a/test/test_files/extensions/VBS/base.vbs b/test/test_files/StyleLexers/styleLexVBS/base.vbs similarity index 100% rename from test/test_files/extensions/VBS/base.vbs rename to test/test_files/StyleLexers/styleLexVBS/base.vbs diff --git a/test/test_files/extensions/VBS/wisubstg.vbs b/test/test_files/StyleLexers/styleLexVBS/wisubstg.vbs similarity index 100% rename from test/test_files/extensions/VBS/wisubstg.vbs rename to test/test_files/StyleLexers/styleLexVBS/wisubstg.vbs diff --git a/test/test_files/StyleLexers/styleLexXML/Sample of FFS_GUI.ffs_gui b/test/test_files/StyleLexers/styleLexXML/Sample of FFS_GUI.ffs_gui new file mode 100644 index 000000000..a0b065ab9 --- /dev/null +++ b/test/test_files/StyleLexers/styleLexXML/Sample of FFS_GUI.ffs_gui @@ -0,0 +1,67 @@ + + + + TimeAndSize + Exclude + + + + Mirror + false + Versioning + E:\Data_D\Versioning + + + + * + + + \System Volume Information\ + \$Recycle.Bin\ + \RECYCLER\ + \RECYCLED\ + *\desktop.ini + *\thumbs.db + + 0 + 0 + 0 + + + + D:\Rizonesoft + E:\Data_D\Rizonesoft + + Mirror + false + Versioning + E:\Data_D\Versioning\Rizonesoft + + + + * + + + \Develop\Notepad3\Bin\ + \Develop\Notepad3\.git\ + \Develop\Notepad3\.vs\ + \Develop\Notepad3\np3portableapp\*.paf.exe + \Develop\Notepad3\np3portableapp\Notepad3Portable\App\Notepad3\ + \Notepad++\Notepad++Portable\ + \Notepad2\Notepad2-zufuliu\ + \NP3Portable\Notepad3Portable\ + \EditPadLite7\EditPadLite7Portable\ + + 0 + 0 + 0 + + + + + + + + Action + + diff --git a/test/test_files/extensions/NZB/Sample of NZB.nzb b/test/test_files/StyleLexers/styleLexXML/Sample of NZB.nzb similarity index 100% rename from test/test_files/extensions/NZB/Sample of NZB.nzb rename to test/test_files/StyleLexers/styleLexXML/Sample of NZB.nzb diff --git a/test/test_files/extensions/XML/XML_01.xml b/test/test_files/StyleLexers/styleLexXML/XML_01.xml similarity index 100% rename from test/test_files/extensions/XML/XML_01.xml rename to test/test_files/StyleLexers/styleLexXML/XML_01.xml diff --git a/test/test_files/extensions/YML/appveyor.yml b/test/test_files/StyleLexers/styleLexYAML/appveyor.yml similarity index 100% rename from test/test_files/extensions/YML/appveyor.yml rename to test/test_files/StyleLexers/styleLexYAML/appveyor.yml diff --git a/test/test_files/extensions/LOG/LOG_02_Long_log (500.00 lines).log.7z b/test/test_files/extensions/LOG/LOG_02_Long_log (500.00 lines).log.7z deleted file mode 100644 index 198297ba0..000000000 Binary files a/test/test_files/extensions/LOG/LOG_02_Long_log (500.00 lines).log.7z and /dev/null differ