Notepad_plus_Window was rather huge (megabytes). Now it's small (tens of kilobytes),
but to safeguard against future size increase move its allocation from the stack
into the heap.
By using smart pointer, this PR not only fix open file crash properly,
but also prevent stack from being corrupted in the future.
Fix#10454, close#10531
Default DarkMode theme style for PHP was missing one element (COMPLEX VARIABLE).
Also Make variables in strings bold so they are more distinguishable.
Close#10502
* Enable/disable ext column via the context menu.
* The ext column checkbox is removed from the preferences dialog.
* Cleaned up localization file
Fix#10468, close#10485
LexerStylerArray contains a MAX_LEXER_STYLE-element array (currently 100) of LexerStyler objects. Every one of them in turn via inheritance from StyleArray contains a SCE_STYLE_ARRAY_SIZE-element array (I tested with 99) of Style objects each at least 56 bytes in size. This in my test case requires over 550k of memory, and if LexerStylerArray is allocated on stack, the stack becomes corrupted. (Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10454#issuecomment-908732786)
Inline arrays are a part of an object and increase its size while std::vector uses memory from the heap and stores internally only a pointer to a chunk of memory, thus the size of an object with a vector is substantially smaller than the one with an inline array. (Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10454#issuecomment-908780106)
Fix#10454, fix#10206
Follow these commits:
* Substitute "Mark" for "Style" in the menu entries (2576bf884b)
* Update English localization file to v8.1.4 (45831ac050)
Close#10416
When both Windows and Notepad++ use RTL language, the Save/Open button is swapped with Cancel button.
Now take that into account when searching the button.
Fix#10397, close#10400
This PR uses always current buffer's path in Find in Files dialog:
When "Follow current doc." is checked, then use current path first.
If that fails, fallback to the working directory as it was before.
Fix#8045, close#10387
The plugins' toolbar icons can be displayed in both light/dark mode by using their original icons.
Though using new API NPPM_ADDTOOLBARICON_FORDARKMODE to have better look & feel is recommanded.
Fix#9959, fix#10388, fix#9809
There's a security flaw for the un-installation of Notepad++ in Windows Register, the string without quotes:
C:\Program Files\Notepad++\uninstall.exe, whereas it should be "C:\Program Files\Notepad++\uninstall.exe".
The reason is, hacker can create a file called c:\program.exe, then Windows could interpret Files\Notepad++\uninstall.exe as the argument, so the system could run c:\program.exe. Ref:
https://isc.sans.edu/diary/Help+eliminate+unquoted+path+vulnerabilities/14464
Fixed by @ozone10:
Fix#10191, fix#6165, close#10369