1--- old/KeePass/Forms/MainForm.cs
2+++ new/KeePass/Forms/MainForm.cs
3@@ -386,42 +386,$OUTPUT_LC$ @@ namespace KeePass.Forms
4 m_pluginManager.UnloadAllPlugins();
5 if(AppPolicy.Current.Plugins)
6 {
7- string[] vExclNames = new string[] {
8- AppDefs.FileNames.Program, AppDefs.FileNames.XmlSerializers,
9- AppDefs.FileNames.NativeLib32, AppDefs.FileNames.NativeLib64,
10- AppDefs.FileNames.ShInstUtil
11- };
12-
13- string strPlgRoot = UrlUtil.GetFileDirectory(
14- WinUtil.GetExecutable(), false, true);
15- m_pluginManager.LoadAllPlugins(strPlgRoot, SearchOption.TopDirectoryOnly,
16- vExclNames);
17-
18- if(!NativeLib.IsUnix())
19- {
20- string strPlgSub = UrlUtil.EnsureTerminatingSeparator(strPlgRoot,
21- false) + AppDefs.PluginsDir;
22- m_pluginManager.LoadAllPlugins(strPlgSub, SearchOption.AllDirectories,
23- vExclNames);
24- }
25- else // Unix
26- {
27- try
28- {
29- DirectoryInfo diPlgRoot = new DirectoryInfo(strPlgRoot);
30- foreach(DirectoryInfo diSub in diPlgRoot.GetDirectories())
31- {
32- if(diSub == null) { Debug.Assert(false); continue; }
33-
34- if(string.Equals(diSub.Name, AppDefs.PluginsDir,
35- StrUtil.CaseIgnoreCmp))
36- m_pluginManager.LoadAllPlugins(diSub.FullName,
37- SearchOption.AllDirectories, vExclNames);
38- }
39- }
40- catch(Exception) { Debug.Assert(false); }
41- }
42- }
43$DO_LOADS$+ }
44
45 // Delete old files *after* loading plugins (when timestamps
46 // of loaded plugins have been updated already)