Commit Graph

459 Commits

Author SHA1 Message Date
Don Ho 5917fdefb0 Fix translation problem for "Sort By"
Make "Plugins" & "Window" menu static to simplify the code.
2022-02-21 00:57:15 +01:00
xomx b233c0c3e0 Fix saving problem (regression) with "Sysnative" alias in x86 binary
Removing the 'case sensitive' default flag FILE_FLAG_POSIX_SEMANTICS fixes the CreateFile ERROR_PATH_NOT_FOUND, when working with files like "C:\Windows\Sysnative\drivers\etc\hosts".

Without the FILE_FLAG_POSIX_SEMANTICS the WIN32 IO (CreateFile/WriteFile) way will be equivalent with the previously used POSIX IO (fopen/fwrite) way.

More info about this "Sysnative" alias: https://docs.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector

Fix #11196, close #11225
2022-02-18 16:48:34 +01:00
Don Ho 94154b0f0e Code enhancement: Fix comparison of different signs integers 2022-02-09 20:06:59 +01:00
Don Ho 785453147b Inialize all memebers of struct (instead of its 1st member) to zero
The curly brace initiator in C/C++ is quite confusing (at least to me).
The C style array uses {0} for initializing all the array to 0,
whereas C++ struct uses {0} for initializing only the 1st member's value to 0.
If we want to set all members' value in a struct to 0, we should use {} instread of {0}.

This commit fix the error which initialize only the 1st member's value to 0 in the structures.

Ref:
1. https://docs.microsoft.com/en-us/cpp/cpp/initializing-classes-and-structs-without-constructors-cpp?view=msvc-170
2. https://en.cppreference.com/w/c/language/struct_initialization
2022-02-09 16:41:56 +01:00
Don Ho 993506af0a Fix Find in Files crash 2022-01-31 03:55:28 +01:00
Don Ho 961a133a60 Remove 2GB file open restriction for x64 binary
Fix #10921, close #11047
2022-01-25 18:08:05 +01:00
Christian Grasser 5b5dbbd3f9 Fix ARM64 build doesn't contain 64 bits information
Fix #11068, close #11069
2022-01-25 01:51:21 +01:00
Don Ho 7ebb1e3672 Add Find/Replace text swap button in Find replace dialog
Fix  #6010, close #11037
2022-01-13 18:44:03 +01:00
Don Ho 5dada11848 Fix Debug information wrong OS information detected with windows 11 issue
Fix #11011
2022-01-11 02:05:38 +01:00
mere-human 9be4eeb4e6 Add copy name/path commands to DocList and Edit menu
1. Add new commands to copy selected files name/path into multi-selection context menu in Document List.
2. Add new commands to copy all files name/path into Edit > Copy to Clipboard.
3. Create a new function buf2Clipborad() to be used in all similar commands.
4. Fix the translation of the Document List multi-selection context menu.

Fix #10394, close #10993
2022-01-05 15:58:54 +01:00
Don Ho b5d646b4cd Add exclude folder(s) capacity in Find in Files
This PR allows users to provide the list of excluding folder names/patterns in "Filters" field.
Eclusion operator is alway "!" at the begining. In order to distinguish folder from file, "\" should be used as prefix of the folder name/pattern, following "!". That allows the exclusion of the directories under the root directory you want to search (the 1st level of matched directories).

If users need to exclude folders with the same name (or names matched the specific pattern) in all levels, the + should be put between "!" and "\" to exclude them recursively.

Here is a sample:
Filters: *.* !\bin !+\test !+\log*
Directory: c:\myProject\

So the excluded directories could be:

    c:\myProject\bin\
    c:\myProject\log\
    c:\myProject\logs\
    c:\myProject\src\log4j\
    c:\myProject\test\
    c:\myProject\src\test\

The following directories will not be excluded:

    c:\myProject\foo\tests\
    c:\myProject\foo\bin\

Note that "inclusion of folder" is not allowed, and such pattern will be ignored.

Fix #2433, fix #8350, close #10927
2021-12-21 18:39:22 +01:00
Don Ho acb8a9db47 Add logs for nul content corruption issue
These logs are written for debugging NUL file-corruption issue (#6133) and session lost issue (#10402) which are still problematic probably.
The writting log info will be triggered only when Windows notifies Notepad++ to end session.
The log file will be in "%APPDATA%\Notepad++\" or in Notepad++ installation folder if doLocalConf.xml is present.
To disable the log, just remove nppLogNulContentCorruptionIssue.xml.

Close #10871
2021-12-04 15:33:32 +01:00
Don Ho 12a13b1c0a Fix saving file and false alert on network drive issues
And add log ability for debugging network drive file status detection issue.

To activate log, user should:
1. Add an empty "nppLogNetworkDriveIssue.xml" file beside of notepad++.exe, or if user has no admin previlege, he/she can add this file into %APPDATA%\Notepad++\.
2. Create "C:\temp\" directory, if it doesn't exist yet.
3. Start notepad++.exe, and wait for the file status (timestamp) detection error from the network drive. If the errors occur, there should be some trace in "C:\temp\nppLogNetworkDriveIssue.log".

People who have had the network drive file status detection issue in #10688, #10753, #10757, #10751 & #10787 are welcome to download the binary and provide the generated log in order to fix this issue.

Fix #10751, fix #10688, fix #10753, fix #10757, fix #10751, fix #10787, close #10847
2021-12-01 20:42:35 +01:00
Don Ho bab3573be7 Fix detection of backup file restored back problem
Fix #10839, close #10843
2021-11-27 16:27:59 +01:00
Don Ho 990c92540d Fix fallure of erasing & saving server logs (of network drive) issue
Fix #10794
2021-11-18 02:32:21 +01:00
Christian Grasser f52c2b022d Fix crash in regex search
Avoid unhandled std::range_error exceptions in case of an text input issue by providing an user-supplied byte-error string
see https://en.cppreference.com/w/cpp/locale/wstring_convert/from_bytes and https://en.cppreference.com/w/cpp/locale/wstring_convert/to_bytes

Fix #10773, close #10783
2021-11-16 00:05:04 +01:00
Don Ho 20990d3197 Fix a regression of saving problem
Some users encounter the issue that files cannot be saved sometimes.
It's due to the share parameter in CreateFile() set as 0, which makes sense for preventing other process from accessing to the file being written. However, when Notepad++ tries to write the file, it opens the file for writing. If at that moment the file is already opened by other program and the share flag is zero, then the system is instructed to deny opening the file on share conflict and the open fails.
Setting share parameter to "FILE_SHARE_READ" instead of 0 solve this problem.

Fix #10751, close #10765
2021-11-11 02:12:22 +01:00
Don Ho 6cae886dde Fix empty file not being saved regression
When open a non-empty text file, empty the file and save it, the file is not saved on disk.
This PR has fixed this regression.

Fix #10667, close #10668
2021-10-15 00:52:26 +02:00
Ashfaaq18 6526094ee7 Fix tooltip layout and position in RTL mode
Fix #10646, close #10655
2021-10-14 18:15:16 +02:00
Don Ho 682a8edafa CFile (Win32 API IO) Refactoring
1. Rename CFile to Win32_IO_File (plus some modification in class).
2. Add new method writeStr() in Win32_IO_File class to write "char*" & string.
3. Change method names of Utf8_16_Write class and make writeFile() method return accurate type (boolean).

Close #10612
2021-10-02 15:00:08 +02:00
Pavel Nedev 9aa9ecb664 Fix NUL file-corruption issue after system shutting down brutally
Uses native Win32 IO API (CreateFile, ReadFile, WriteFile, CloseHandle) instead of POSIX ones (fopen, fread, fwrite, fclose) for remedying NUL file-corruption problem due to system shutting down brutally.

Fix #6133, close #10598
2021-09-28 12:30:05 +02:00
mere-human 0ad4912eb0 Enhance Insert Custom Date command by using MS datetime format
Fix #10467, close #10480
2021-09-16 17:25:19 +02:00
Don Ho a3116818e0 Code enhancement: Initialize variable member's value of struct/class
Close #10545
2021-09-14 03:08:17 +02:00
Don Ho e5a800722b Make code more sanitary
Fix some vulnerable codes detected by VS's analyzing.

Close #10541
2021-09-12 18:50:30 +02:00
Ashfaaq18 36d0d29cc7 Add path column in Document list panel
Fix #9679, close #10539
2021-09-12 15:18:22 +02:00
Don Ho 84c1505fab Add custom date time insert
Make Insert date time customizable.
Also make date time order reversable for short & long format.

Fix #10445, close #10453
2021-08-29 19:42:05 +02:00
ozone10 5e899f2a6c Enhance dialog visual look & feel
Change dialog extyles.

Fix #10384, close #10385
2021-08-15 20:27:46 +02:00
0xlay 9a3152faa2 Add TypeScript language
Fix #10353, close #10361
2021-08-13 20:12:02 +02:00
mere-human 90485aaa21 Use CRLF line ending in Copy command from Windows dialog
Also, move endsWith() function to Common.h and reuse it in WindowsDlg.

Fix #10311, close #10314
2021-08-03 03:08:49 +02:00
Don Ho 1dad7c7e7f Increase macro, user command and plugin command number capacity
Macros:      200 -> 499
User cmds:   200 -> 499
Plugin cmds: 500 -> 999

Fix  #10263
2021-07-29 18:02:29 +02:00
ozone10 baae30102c Apply dark mode on preferences dialog
1. Apply dark mode on preferences, about, debug and save all dialogs.
2. Make link text aware of dark mode.

Fix #10264, close #10265
2021-07-27 01:49:10 +02:00
ozone10 b0d4e776c6 Apply dark mode on hash dialogs
Also allow typing newline in multiple lines for generating hash.

Fix #10255, close #10256
2021-07-26 14:17:10 +02:00
Ashfaaq18 7b1e6546a1 Make Document List Panel togglable and shortcutable via View menu
1. Toggle toolbar item and view menu item for Document List Panel.
2. Added standard, filledFluent, darkmode->toolbar->(fluent and filledfluent) icons for the Document List Panel toggle.
3. Working shortcut for the Document List Panel under shortcut mapper.
4. Removed show document panel from the preference menu, kept the extension option.
5. Rename "Doc Switcher" to "Document list".

Fix #3526, fix #9015, close #10214
2021-07-23 16:14:22 +02:00
ozone10 467870d66e Add DarkMode Tooltips
Fix #9962, close #9963
2021-06-13 00:35:12 +02:00
Don HO 8a898bae3f Add new API NPPM_ADDTOOLBARICON_FORDARKMODE for darkmode
Usage:
void NPPM_ADDTOOLBARICON_FORDARKMODE(UINT funcItem[X]._cmdID, toolbarIconsWithDarkMode iconHandles)

This new API NPPM_ADDTOOLBARICON_FORDARKMODE is for replacing obsolete NPPM_ADDTOOLBARICON which doesn't support the dark mode.
2 formats / 3 icons are needed:  1 * BMP + 2 * ICO
All 3 handles below should be set so the icon will be displayed correctly if toolbar icon sets are changed by users, also in dark mode.
	struct toolbarIconsWithDarkMode {
		HBITMAP	hToolbarBmp;
		HICON	hToolbarIcon;
		HICON	hToolbarIconDarkMode;
	};

Close #9928
2021-06-01 01:36:07 +02:00
Don HO 51207a4fe5 Refactoring some code of Dark mode 2021-05-27 03:56:22 +02:00
debiedowner ddd4448192 Add ability to reverse line order
Fix #9837, close #9839
2021-05-12 03:06:44 +02:00
Don HO 7d25394244 Add new toolbar icons (Fluent UI)
1. Remove obsolete icon set.
2. Add both Fluent UI & Filled Fluent UI icon sets.
3. Refactoring toolbar code

Fix #9742, close #9808
2021-05-05 14:39:27 +02:00
Don HO d0afc51621 Add ARM64 support for auto-update feature 2021-04-22 05:20:54 +02:00
Don HO a459523659 Fix Notepad++ ARM64 version refusing to load plugins in ARM64 version 2021-04-21 23:24:05 +02:00
Don HO af56713079 Change name of programming language from Nimrod to Nim
Fix #9768
2021-04-15 03:40:30 +02:00
Udo Hoffmann 926e6e97d8 Catch regex search exceptions and show exception message
Fix #9565, close #9566
2021-03-24 01:24:24 +01:00
Don HO dbac42edd0
Use unary operator '!' instead of "not" 2021-02-20 04:44:34 +01:00
mere-human e7079d57c6
Enhance FileDialog for allowing UNIX stile file path
And use modern CustomFileDialog istead of old FileDialog in Notepad++.

In the file dialog, override window procedure for "OK" button and
file name edit box to check for input.
Transform forward slash file name to a Window path after input.

Fix #9374, close #9403
2021-01-26 18:52:15 +01:00
Don HO ab5c1d3e2a
Upgrade Notepad++ License
Update GPL version from v2 to v3.

Fix #9425, close #9441
2021-01-24 01:51:19 +01:00
Christian Grasser a55d46d170
Fix incompatible plugin not being deleted issue
Unload incompatible plugin before deleting it.

Fix #9377, close #9382
2021-01-11 04:58:15 +01:00
mere-human b58a5cc227
Use the mordern browse folder dialog to get folder path
Add new methods to CustomFileDialog:
- setTitle() sets the dialog title
- setFolder() sets an initial directory
- pickFolder() shows a file open dialog to select a folder

Use CustomFileDialog in folderBrowser().

Affected areas:
- Search > Find in Files
- File > Open Folder as Workspace
- Preferences > Default Directory
- Preferences > Backup > Custom Backup
- Preferences > Cloud & Link

Fix #8513, close #9378
2021-01-11 03:56:46 +01:00
Don HO c9c2d1e376
Add an option for displying constant line number width
1. Add an option for displying constant line number width in Preferences dialog.
   This option set the line number constant width according the total line number in the document (minimun 4 digits).
   It ensures no unexpected visual effect while scrolling content vertically.
   If the document content is modified and the total number of lines is increased or decreased, more digits will be added or removed according the number of digits in total number of lines.

2. Add new plugin messages NPPM_GETLINENUMBERWIDTHMODE & NPPM_SETLINENUMBERWIDTHMODE for getting or setting LINENUMWIDTH_DYNAMIC / LINENUMWIDTH_CONSTANT.
   So plugins may send NPPM_SETLINENUMBERWIDTHMODE message with LINENUMWIDTH_CONSTANT to Notepad++ for avoiding some unexpected visual effect (while scrolling).

Fix #5670
2020-12-06 16:38:53 +01:00
Scott Sumner b2387286b1
Fix find in files failure issue due to directory path with leading/trailing spaces
Trim spaces on Directory for FindInFiles to fix such issue.

Fix #9199, close #9208
2020-11-29 14:29:16 +01:00
Don HO 7874f8dab3
Add new API NPPM_GETSETTINGSONCLOUDPATH for plugins
#define NPPM_GETSETTINGSONCLOUDPATH (NPPMSG + 98)
	// INT NPPM_GETSETTINGSCLOUDPATH(size_t strLen, TCHAR *settingsOnCloudPath)
	// Get settings on cloud path. It's useful if plugins want to store its settings on Cloud, if this path is set.
	// Returns the number of TCHAR copied/to copy. If the return value is 0, then this path is not set, or the "strLen" is not enough to copy the path.
	// Users should call it with settingsCloudPath be NULL to get the required number of TCHAR (not including the terminating nul character),
	// allocate settingsCloudPath buffer with the return value + 1, then call it again to get the path.

Close #9168
2020-11-19 04:29:50 +01:00
Scott Sumner 91e3594836 Remove some unused files from project
Close #9075
2020-10-29 19:13:22 +01:00
Scott Sumner 7bcb34b848 Add some missing items to Visual Studio project
Fix #9063, close #9073
2020-10-29 14:51:13 +01:00
Scott Sumner 77d4606967
Add ability to remove any duplicate lines in a document, keeping the first occurrence
Fix #8965, close #9033
2020-10-23 16:04:34 +02:00
Pavel Nedev a103151774
Fix NUL file-corruption bug after Windows shutdown brutally
Bypass Windows caching when flushing files after write.

According Microsoft documentation this fixes the issues with saved file corruption (all NULs)
on sudden power loss or restart.

Microsoft documentation for reference:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-wfopen?view=vs-2019
https://docs.microsoft.com/en-us/cpp/c-runtime-library/stream-i-o?view=vs-2019

Fix #6133, close #8952
2020-10-06 15:55:41 +02:00
Scott Sumner 61bf9bd3c4
Add case insensitive lines sorting
Close #4479, close #8869
2020-09-28 23:29:33 +02:00
Scott Sumner b072479bb8 Fix column key sort with col block starting in col1 bug
Fix #8716, close #8717
2020-08-18 18:31:27 +02:00
Scott Sumner 5271b88fc3 Fix sorting by column key using incorrect key values
Fix #8674, close #8675
2020-08-09 13:44:25 +02:00
Scott Sumner ca3d514722 Add ability to sort lines randomly
Close #8682, close #8683
2020-08-09 04:19:08 +02:00
Scott Sumner 9f29015a71
Allow user to skip *.* when adding only excluding Filters for Find/Replace In Files
Close #8169, close #8255
2020-05-15 01:27:11 +02:00
Waldi Ravens 6b51bb464a
Fix incorrect macro name
Close #8246
2020-05-11 04:54:57 +02:00
Don HO cc2c9b7740
Implement multi-line edge feature
Close #3128
2020-04-13 04:15:32 +02:00
Don HO 3de506bf48
Update copyright
Close #5919
2020-04-04 23:03:18 +02:00
Don HO 6e6341cc61
Make some codes conform to the defined coding style 2020-01-28 02:20:44 +01:00
Waldi Ravens 0db5b6d3d8 Fix HashFromDlg title bar localization issue
Fix #7884, close #7885
2020-01-27 10:36:07 +01:00
Don HO b0c5de10f9
Fix API comment error
Fix #7717
2019-12-28 18:56:43 +05:00
Don HO 14074e1487
Disable file association settings when Notepad++'s no admin right
File association feature under Windows 10 needs the Administrator's preivilege.
This commit add an explicit message to users who want to use this feature, and disable this feature if Notepad++ has no Administrator's preivilege.

Fix #4984, fix #5192, fix #4542
2019-12-27 00:35:16 +05:00
Don HO b3419ad00d
Fix a typo 2019-12-04 01:32:24 +01:00
Don HO f44c357999
Add tooltip for filter usage in Find in Files dialog 2019-11-22 14:28:13 +01:00
Ale dc48cee5f7
Add find in files filter excluding ability
Filter usage example:
*.* !*.exe !*.obj !*.log

Close #7618, close #7626
2019-11-21 13:34:01 +01:00
Don HO ebe0b1b189
Use "#pragma once" instead of "#ifndef" 2019-11-16 03:38:11 +01:00
Markus Heidelberg 98f4b1503e
Fix GCC compile errors under Linux due to case sensitivity in #include
Closse #7528
2019-11-13 01:46:05 +01:00
Christian Grasser c741f83bde
Update makefile for mingw gcc builds
Close #4145
2019-11-07 22:13:47 +01:00
Don HO 5cf296ee10
Remove Author from About and add Online Document to menu
Remove Author link from About dialog and add Online Document link to menu
2019-10-05 17:07:39 +02:00
Don HO 581aff630a
Use standard C++11 mutex
And remove unecessary files

Close #6093
2019-08-25 23:34:30 +02:00
Don HO ab46fe0806
Code enhancement: remove duplicated code 2019-08-22 01:19:22 +02:00
luisffranca 0d87d37d35
Handle Ctrl+A keyboard shortcut in MD5/SHA256 Generators
Added new window procedures for the HASH_PATH_EDIT/HASH_RESULT_EDIT
and HASH_TEXT_EDIT/HASH_RESULT_FOMTEXT_EDIT controls, where Ctrl+A
is now processed.

Fix #3863, close #3898, close #6034, close #6059
2019-08-22 00:50:13 +02:00
Don HO 93a9962fde
Code enhancement: Use C++11 =default & =delete for the constructor & destructor 2019-08-19 02:05:21 +02:00
Rajendra Singh 3a1244177c
Code enhancement: Function arguments pass by reference
Close #6063
2019-08-18 01:16:23 +02:00
Nikita Kolotov 0bf3eea08a
Code enhancement: add std qualificator
Fixed build failure caused by use of function std::make_pair without qualificator.

Fix #6051, close #6052
2019-08-17 10:24:58 +02:00
Don HO 77da706207
Code enhancement: remove goto label
Close #6053, close #6054
2019-08-16 12:34:39 +02:00
Don HO 06db9ee338
Code improvement for NppParameters 2019-08-14 22:13:24 +02:00
Don HO bbc55d06f2
Code improvement for WcharMbcsConvertor 2019-08-14 01:54:56 +02:00
Rajendra Singh 938dae9b2a
Improve singleton
Close #6036
2019-08-13 12:48:05 +02:00
Don HO 3643a1875b
Make 2 singleton "new-less"
Make WcharMbcsConvertor & FileManager "new-less"
2019-08-11 01:17:53 +02:00
AngryGamer 8b151ac991
Fix Sort Line as Integer regression
The regression was made by #5555:
ff20c264df

Close #5843, fix #5839
2019-07-06 02:51:01 +02:00
Silent 401dbbc7d5
Disable integrity checks in Debug
Close #5884
2019-07-05 01:36:07 +02:00
Waldi Ravens 31ae813286
Allow plugins to load private DLL files from the plugins folder
The problem is the way Windows searches for dynamically linked DLLs (Dynamic-Link Library Search Order).
For example, LuaScript.dll is the plug-in DLL, loaded by Notepad++.exe, and lua53.dll is the auxiliary DLL, required by LuaScript.dll and also by user-installed Lua modules. Both DLLs should be located in \plugins\LuaScript. But, when Notepad++ calls LoadLibrary to load LuaScript.dll, Windows will not find the dynamically linked lua53.dll, hence the LoadLibrary call fails. This happens, because Windows will look in the application directory (which is the location of Notepad++.exe), and not in the LuaScript.dll directory.
To make Windows search in the LuaScript.dll directory, Notepad++ needs to call LoadLibraryEx with the LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR flag.

Close #5802, close #5853
2019-07-04 20:29:05 +02:00
AngryGamer 6c034985a2
Fix crash when sorting out_of_range columns
Fix crash while sorting the right part of equal sign with column-selection:

100/20 = 5

1/3    = 0.333

22/7   = 3.14285714286

Note that empty lines between the numbers are intentional.

Fix #5865, fix #3391, close #3771
2019-07-04 01:39:52 +02:00
Don HO 57a49c3ba5
Add the commandline argument to open folders in "folder as workspace" panel
Add the ability to open folders in "folder as workspace" panel via command line argument "-openFoldersAsWorkspace".
Example:
notepad++ -openFoldersAsWorkspace c:\src\myProj01 c:\src\myProj02
The above command will launch notepad++ with folder as workspace panel by opening myProj01 and myProj02 in panel.

Close #4253, close #5100
2019-06-25 13:50:41 +02:00
AngryGamer 895c315df0
Fix drag and drop tab regression
The bug: Drag a short name tab to accross a longger name tab (w/o releasing mouse click) will make a swich - dragging the logger name instead of the shorter name one.
This regression is due to PR "Fix Tab non-responding after dragging bug".

This reverts commit c6e1a95098.

Fix #5072, fix #5450, open #4885
2019-06-15 11:37:06 +02:00
Rajendra Singh ff20c264df
Fix crash while sorting lines with numbers longer than 20 digits
Fix #5261, close #5555
2019-05-30 17:26:22 +02:00
Don HO 01d8349b1f
Security: switch from component sha256 checking to certificate checking. 2019-05-10 09:35:25 +02:00
Don HO d22d1609ab
Upgrade Scintilla - Adaptation of PowerEditor part 2019-05-08 11:13:21 +02:00
Don HO 6ceda544a6
Use new NppPluginList release 1.0.8 2019-03-26 02:51:17 +01:00
Don HO a7c59e1776
Add "Multi-Select Next Occurrence" into menu
Update localization files
2019-03-19 02:52:13 +01:00
Don HO 0c5a42153b
Remove unecessary cast 2019-03-18 09:45:25 +01:00
Don HO 52a4e21af5
Remove ugly coding style 2019-03-16 05:33:50 +01:00
Don HO 5356f648c2
Remove some ugly coding styles 2019-03-13 02:02:35 +01:00
Rajendra Singh eb8eb25799 Make naming homogeneous in xml file
No more dummy surprises.

Close #5276
2019-03-03 16:38:26 +01:00
Rajendra Singh 50e9e87e44 Use the reference parameter instead of copy parameter and some clean up
Close #5360
2019-03-02 14:46:17 +01:00
Don HO 94c4608cc1 Fix a typo & add some comments 2019-03-01 13:35:26 +01:00
Don HO c22f181d80 Add hashes (32/64) of nppPluginList.dll new release 2019-03-01 03:41:47 +01:00
Pavel Nedev 1dfa92c4b7 Add 'Open Plugins Folder...' command
Closes #5224, closees #5225
2019-03-01 01:03:34 +01:00
Don HO 3baef49079 Add SHA256 checking of the authentity of used modules
In order to remove the code signing certificate dependency, SHA256 checking of the authentity of used modules (Scilexer.dll, GUP.exe and nppPluginList.dll) is added.
See the followling link for the detail information:
https://notepad-plus-plus.org/community/topic/17184/remove-code-signing-from-notepad
2019-02-27 10:14:36 +01:00
Don HO 5085d9c95a [EU-FOSSA] Check string length to copy to avoid crash in purgeMenuItemString function 2019-02-22 19:58:20 +01:00
Don HO bd7816755c [EU-FOSSA] Replace lstrcat by wcscat_s to avoid crash 2019-02-22 12:57:58 +01:00
Don HO 7fe3cda1d0 [EU-FOSSA] Use wcscpy_s instead of lstrcpy to prevent from buffer overflow 2019-02-11 02:07:04 +01:00
Don HO 0438447194 [EU-FOSSA] Fix stack buffer overflow on LB_GETTEXT 2019-02-08 22:13:12 +01:00
Don HO dfb9b5e330 Enhance User Defined Language System for supporting more than one UDL file.
Several UDL xml files can be loaded to allow to manage/share UDL more easily.

1. The old file userDefineLang.xml is kept in its old location and is still used.
2. The new folder userDefineLangs is added beside of the old UDL default file. Any UDL xml file can go into the folder userDefineLangs and will be loaded as UDL.
3. A UDL xml file must contain one (or several) user defined language(s).
4. The created UDL via UDL dialog and imported UDL are saved in  userDefineLang.xml (default UDL file).

https://notepad-plus-plus.org/community/topic/17072/new-enhancement-for-user-defined-language-system
2019-02-07 23:40:17 +01:00
Don HO c314ed1d8a [EU-FOSSA] DLL hijacking of plugins\Config\Config.dll loaded by Notepad++ 2019-01-28 19:54:50 +01:00
Don HO abf78e84b2 [EU-FOSSA] Fix loading unexpected dll as plugin issue
Unexpect behaviour: if "<NppDir>\...dll" and/or "<NppDir>\plugins\..dll" exist, they will be loaded because Notepad++ try to load "<NppDir>\pluginName\pluginName.dll" as plugin, in our case "<NppDir>\plugins\..\...dll" and "<NppDir>\plugins\.\..dll" respectively.

The fix is excluding both directories ".." & "." to not load mentionned above unwanted dll.
2019-01-19 03:30:54 +01:00
Don HO 4421161848 [EU-FOSSA] Fix stack overflow issue while affecting "ext" field on stylers.xml 2019-01-18 23:09:00 +01:00
Rajendra Singh 694415f8af Make exception error more clear
Close #5212
2019-01-15 09:56:41 +01:00
Don HO 412c5986a0 Fix a compiling error due to bad formatted ressource file. 2018-12-17 14:11:41 +01:00
Don HO 647651b7ee Add generation of SHA-256 hash feature 2018-12-16 20:14:30 +01:00
Don HO 775d204ef9 Change loading plugin list location
Loading plugin list location is changed from %LOCALAPPDATA%\Notepad++\plugins\Config\ to
%PROGRAMDATA%\Notepad++\plugins\Config\

Enhance API NPPM_GETPLUGINSCONFIGDIR
2018-12-04 13:38:25 +01:00
Don HO 78a0f57ed1 Make Plugins Admin translatable 2018-11-27 13:12:56 +01:00
Don HO 61402a354f Add elevation capacity for wingup if plugins are installed in %PROGRAMDATA%
While plugins are in %PROGRAMDATA%, we need admin's rights to modify them. This PR detects the plugins installation in %PROGRAMDATA%, then launch wingup with UAC.
2018-11-24 16:26:24 +01:00
Rajendra Singh fd52450d16 Fixed memory leaks
Close #4945
2018-11-12 22:56:28 +01:00
Don HO 17ac06f83a Fix a regression of fail removing different architecture plugins 2018-11-12 03:37:42 +01:00
Don HO a87e89ea92 Add new Plugin message NPPM_GETPLUGINHOMEPATH in API
The new message NPPM_GETPLUGINHOMEPATH allows plugins to get plugin home root path. It's useful if plugins want to get its own path by appending <pluginFolderName> which is the name of plugin without extension part.
2018-11-07 23:30:59 +01:00
Don HO e9a489c5c9 Remove allowAppDataPlugins.xml detection.
Simply plugins loading emplacement:
NPPM_GETAPPDATAPLUGINSALLOWED to check to see if loading plugins from "%APPDATA%\..\Local\Notepad++\plugins" is allowed.
If doLocalConf no
else yes
2018-11-03 19:45:04 +01:00
Don HO 7e555b67fc Remove the legasy plugin loading way and apply only the new plugin loading method
1. Load plugins only from the new plugin folder structure. example: Notepad++\plugins\myAwesomePlugin\myAwesomePlugin.dll
2. Load plugins from only one directory. If doLocalConf.xml is present, then it will be <NPP_INSTALLATION_DIR>\plugins\
   otherwise %USERPROFILE%\AppData\Local\Notepad++\plugins\
2018-11-03 12:39:23 +01:00
Don HO c531a4d42a Send NPPN_READY notification to loaded plugins after their installation by Plugin Admin 2018-10-25 20:48:36 +02:00
Don HO ef5d07771a Fix checking plugin crash issue due to plugin packaging error. 2018-10-25 03:34:49 +02:00
Don HO 519fecbb82 Add SHA-256 implementation and use sha-256 instead of md5 in Plugin Admin 2018-10-24 09:45:35 +02:00
Don HO e919d4d05a Remove getFileContain function's limitation. 2018-10-24 00:54:52 +02:00
CFrank 84938b7b0f Add new plugin API NPPM_REMOVESHORTCUTBYCMDID to allows plugins to remove unneeded shortcuts
Fix #4674, close #4687
2018-10-07 03:08:34 +02:00
Wurstbrot c6e1a95098 Fix Tab non-responding after dragging bug
Short problem description:
Drag/drop a tab with the mouse to another position,
then all other tabs can't be activated with clicking anymore.

Also a missing include was added, that prevented compilation

Fix #4885, close #4886
2018-10-02 20:18:11 +02:00
Don HO b662bcf5ae Add checking MD5 ability in Plugin Admin
Check MD5 after installing to prevent from MITMA
2018-09-27 09:56:58 +02:00
Don HO e75cf910bd Add new brhaviour of checking Plugin List's certificate 2018-07-31 09:12:57 +02:00
Don HO eb4edb50ef Plugin Admin - in progress 2018-07-19 02:03:17 +02:00
Silent 6b5144d176 Fix format specifier warnings - /Wv:18 can now be removed
As a follow up to my previous pull request, this PR fixes the last remaining improper format specifiers. This allows to remove /Wv:18 compilation flag completely, since (presumably) the only reason it was added in the first place were those format specifier warnings, introduced in VS2015.

Effectively, all this PR does is applying fixes suggested by the compiler (included in those warnings).

Close #4604
2018-06-27 22:35:32 +02:00
Silent a9d203a60a Deprecate wstat/stat in favour of WinAPI GetFileAttributesEx - unifies code and behaviour between Windows versions
Fixes #4491, fixes #3969, fixes #2535, fixes #215, close #4541
2018-06-25 00:33:09 +02:00
Silent 08eb29e3d6 Force cpp standard const char pointer on string literals
const-ified all string literals to suppress warnings on gcc and allow /Zc:strictStrings to be used with Visual Studio

Fix #4146, close #4150
2018-06-25 00:06:26 +02:00
Don HO 32c1427c12 Add run process sync method & Plugin Admin's operations
Make Updater run sync for removing & restoring plugin info from & to the
plugin lists while the Plugin Admin's operation of installation, update and removal.
2018-06-19 09:39:42 +02:00
Don HO 3a52ab1af1 Remove unused method 2018-05-07 21:11:22 +02:00
nrecker e65b4c37bf Fix Sort Lines as Integers issue: use Natural Sort algorithm
This changes the line operations "Sort as Integers Ascending" and "Sort as Integers Descending" to sort by Natural Sort Order, in which consecutive numerals are considered as one character. This causes "2" < "10", just like in the old Integer sort, but also "foo 2" < "foo 10", which was not previously available functionality. In cases where every line is a single integer, Natural Sort functions exactly the same as Integer Sort; when every line begins with a single integer, it is a valid Integer Sort.

Close #4413, fix #2025
2018-05-06 13:25:10 +02:00
Don HO 454f92af4a Adapt new plugin file system structure for the future release. 2018-04-30 19:36:15 +02:00
Don HO 7cf5232056 Make new file system of plugin works on installation directory 2018-04-25 20:46:09 +02:00
d0vgan 58fa70b580 Fix file status detection issue under Windows XP (32-bit only)
Close #4226
2018-03-18 00:52:52 +01:00
Don HO abcbec181a Change the EOL 2018-02-27 01:18:00 +01:00
Silent 16fa79f057 Warning/error fixes as per VS2017 code analysis
Closes #4154
2018-02-19 12:21:35 +01:00
Christophe Meriaux 360d45db1a Add filter capacity in the shortcut mapper
Closes #4096, closes #2562
2018-02-11 16:37:30 +01:00
Silent 683c358e8a Fix 2 different files whose canonic names are the same can't be opened
in the same time issue

Fix Unicode file name comparision to match Windows behaviour (as opposed to doing a linguistic filename comparision)

Fixes #3820, closes #4141
2018-02-04 04:26:52 +01:00
SinghRajenM fcb3ce31a0 Code improvement
Closes #4085
2018-01-28 23:22:47 +01:00
Don HO 2390b19706 Fix a crash bug due to eventual disordered notifications sent to plugins
The Access Violation while closing Notepad++:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/3961
could be due to SCN_UPDATEUI sending after NPPN_SHUTDOWN, that makes
plugins treat SCN_UPDATEUI on the released handle.

To avoid such situation, once NPPN_SHUTDOWN has been sent, no more
message will be sent to plugin.

Fixes #3961, fixes #4021
2017-12-27 18:19:01 +01:00
Oleksandr Redko bdcc386a3a Fix static analyzer issue "An exception should be caught by reference"
V746 Object slicing. An exception should be caught by reference rather than by value. filedialog.cpp 183
V746 Object slicing. An exception should be caught by reference rather than by value. nppbigswitch.cpp 110
V746 Object slicing. An exception should be caught by reference rather than by value. pluginsmanager.cpp 259
2017-10-29 18:18:00 +02:00
SinghRajenM 3cb8bc85a1 Fix certificate checking error message issue
1. Fixed issue (caption and message are interchanged)
2. Disabled lexerdll signature checking in debug mode

Closes #3691, Fix #3688
2017-09-17 01:16:47 +02:00
Thomas Linder Puls 854acae4a1 Add Visual Prolog language support
Closes #1439
2017-08-25 09:43:36 +02:00