diff options
Diffstat (limited to 'app-admin/keepass/files/keepass-2.19-xsl-path-detection.patch')
-rw-r--r-- | app-admin/keepass/files/keepass-2.19-xsl-path-detection.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/app-admin/keepass/files/keepass-2.19-xsl-path-detection.patch b/app-admin/keepass/files/keepass-2.19-xsl-path-detection.patch new file mode 100644 index 000000000000..76b924111141 --- /dev/null +++ b/app-admin/keepass/files/keepass-2.19-xsl-path-detection.patch @@ -0,0 +1,43 @@ +KeePass looks for some resources (XSL files) in the executable directory, +however under UNIX system this not a good idea, so we look into the +CommonApplicationData SpecialFolder, which usually maps to "/usr/share/". +So the final search path should be "/usr/share/KeePass/XSL/". + +--- a/KeePass/Forms/AboutForm.cs ++++ b/KeePass/Forms/AboutForm.cs +@@ -31,9 +31,11 @@ using KeePass.UI; + using KeePass.Resources;
+ using KeePass.Util;
+ using KeePass.DataExchange;
++using KeePass.Native;
+
+ using KeePassLib;
+ using KeePassLib.Utility;
++using KeePassLib.Native;
+
+ namespace KeePass.Forms
+ {
+@@ -92,8 +94,21 @@ namespace KeePass.Forms + m_lvComponents.Items.Add(lvi);
+
+ lvi = new ListViewItem(KPRes.XslStylesheets);
+- string strPath = WinUtil.GetExecutable();
+- strPath = UrlUtil.GetFileDirectory(strPath, true, false);
++
++ string strPath;
++ if (NativeLib.IsUnix())
++ {
++ strPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
++ strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
++ strPath += PwDefs.ShortProductName.ToLower();
++ strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
++ }
++ else
++ {
++ strPath = WinUtil.GetExecutable();
++ strPath = UrlUtil.GetFileDirectory(strPath, true, false);
++ }
++
+ strPath += AppDefs.XslFilesDir;
+ strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false);
+ bool bInstalled = File.Exists(strPath + AppDefs.XslFileHtmlLite);
|