64 Commits

Author SHA1 Message Date
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
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
Pavel Nedev
1dfa92c4b7 Add 'Open Plugins Folder...' command
Closes #5224, closees #5225
2019-03-01 01:03:34 +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
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
Rajendra Singh
694415f8af Make exception error more clear
Close #5212
2019-01-15 09:56:41 +01:00
Don HO
78a0f57ed1 Make Plugins Admin translatable 2018-11-27 13:12:56 +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
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
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
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
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
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
Don HO
4c2e41b649 Plugin name should match to plugin folder name
Load plugin only when plugin name match to plugin folder name.
For example: "NppPluginDemo.dll" can be loaded only when it in the
folder named "NppPluginDemo".
2017-07-10 19:26:22 +02:00
Don HO
2c9f096d6d Make plugins loadable from %LOCALAPPDATA%\Notepad++\plugins\ 2017-07-09 15:56:18 +02:00
SinghRajenM
7f98067c12 Add error notification on run dialog
1. GetLastErrorAsString is moved from PluginsManager.cpp to Common.h and common.cpp and also function signature is changed
2. Below method were already defined in common.cpp, but not declared in common.h
       generic_string intToString(int val);
       generic_string uintToString(unsigned int val);
3. Updated RunDlg.cpp to show error if ShellExecute fails

Closes #2626, Fixes #2179
2017-02-05 13:12:03 +01:00
Don Ho
c235e17f7d Add Plugins Administrator (UI part, in progress) 2017-01-20 14:13:41 +01:00
dail8859
5f8ba93b78 Check plugin architecture before loading
Closes #2348, Closes #2350
2016-10-06 20:59:22 -04:00
dail8859
d64a525f3e Sort plugin menu by plugin name 2016-10-06 17:24:27 -04:00
Don HO
37ed299743 Lost in Translation 2 2016-08-10 00:22:45 +02:00
dail8859
a3bb9d294a Report the correct crashed plugin
Closes #1980
2016-07-05 16:55:24 -04:00
Don HO
c15a0deb35 Make bitness available in DebugInfo 2016-06-17 20:18:06 +02:00
Don HO
9835445c8b Detect x32 and x64 compatibility between plugins and Notepad++ 2016-06-17 01:10:32 +02:00
Don HO
64d7535be1 x64 ready
1. Remove all warning while compiling in x64
2. Treat warning as error (W4) while compiling in x64
2016-06-05 20:30:22 +02:00
Sarang Baheti
0d35d607bd Enhancement: better error messages when plugins fail to load
Close #1284
2016-01-08 15:12:11 +01:00
Don Ho
773397d6ea Add Debug Info feature 2015-12-07 01:15:17 +01:00
Damien GERARD
23cd144198 Applied coding style / cleanup 2015-07-15 14:09:31 +02:00
Christian Grasser
a8a6f2c881 - avoid some compiler warning
- build also without SCI_OWNREGEX
2015-06-11 17:41:07 +02:00
Don Ho
246c8bd168 [UPDATE] Unprecompile headers (part 3) 2015-06-02 18:01:47 +02:00
Don Ho
e9e710a3d4 [UPDATE] Unprecompile headers (part 2) 2015-05-31 22:40:07 +02:00
Don Ho
f224c673bf [NEW] (Author: Pavel Nedev) Add notification for plugins : NPPN_BEFORESHUTDOWN NPPN_CANCELSHUTDOWN NPPN_FILEBEFORERENAME NPPN_FILERENAMECANCEL NPPN_FILERENAMED NPPN_FILEBEFOREDELETE NPPN_FILEDELETEFAILED NPPN_FILEDELETED
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1346 f5eea248-9336-0410-98b8-ebc06183d4e3
2015-02-21 18:20:50 +00:00
Don Ho
b1f84d2788 [NEW] Add some menu accelerator.
[UPDATE] Fix some typos and syntax issues.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1299 f5eea248-9336-0410-98b8-ebc06183d4e3
2014-11-30 02:17:49 +00:00
Don Ho
81f5a3613e [BUG_FIXED] Fix sort settings bug in function list while reloading.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1137 f5eea248-9336-0410-98b8-ebc06183d4e3
2013-10-21 21:50:04 +00:00
Don Ho
6264ef03d0 [ENHANCEMENT] Code optimization.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1073 f5eea248-9336-0410-98b8-ebc06183d4e3
2013-07-08 00:12:50 +00:00
Don Ho
a62ecb6449 [ENHANCEMENT] Enhance the performance to get once the length in the for loop.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1041 f5eea248-9336-0410-98b8-ebc06183d4e3
2013-05-15 07:28:55 +00:00
Don Ho
a896922136 [UPDATE] Update the GPL of all project source code to avoid the bundle version made by the tiers sites : cnet, softonic and 01net.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@896 f5eea248-9336-0410-98b8-ebc06183d4e3
2012-04-15 16:54:38 +00:00
Don Ho
41a9d6854b [MODIF] Installer: Don't override contextMenu.xml.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@869 f5eea248-9336-0410-98b8-ebc06183d4e3
2012-02-25 00:41:10 +00:00
Don Ho
6c4eef8cb7 [MODIF_BEHAVIOUR] Make plugins in %APPDATA%/Notepad++/plugins/ override les plugins in Notepad++ installation directory.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@844 f5eea248-9336-0410-98b8-ebc06183d4e3
2011-11-16 23:24:11 +00:00
Don Ho
79e153399f [RELEASE] Notepad++ 5.8.4 release.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@705 f5eea248-9336-0410-98b8-ebc06183d4e3
2010-11-14 18:10:10 +00:00
Don Ho
df0f0b3a30 [BUG_FIXED] Fix context menu reload problem (plugin commands reload fails).
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@691 f5eea248-9336-0410-98b8-ebc06183d4e3
2010-10-30 15:38:51 +00:00
Don Ho
00fbd3444b [NEW] (Author: Dave Brotherstone) Add NPPM_ALLOCATEMARKER plugin message.
[NEW_FEATURE] Add Statistics feature which is accessible from the menu command "Summary..." (under menu "View") and the 2nd zone of statusbar (double click).

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@667 f5eea248-9336-0410-98b8-ebc06183d4e3
2010-09-19 01:27:41 +00:00