summaryrefslogtreecommitdiff
path: root/app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch
reinit the tree, so we can have metadata
Diffstat (limited to 'app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch')
-rw-r--r--app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch b/app-admin/keepass/files/keepass-2.36-xsl-path-detection.patch
new file mode 100644
index 000000000000..c17b654d3f35
--- /dev/null
+++ b/app-admin/keepass/files/keepass-2.36-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.Resources;
+ using KeePass.UI;
+ using KeePass.Util;
++using KeePass.Native;
+
+ using KeePassLib;
+ using KeePassLib.Utility;
++using KeePassLib.Native;
+
+ namespace KeePass.Forms
+ {
+@@ -98,8 +100,21 @@
+ m_lvComponents.Items.Add(lvi);
+
+ lvi = new ListViewItem(KPRes.XslStylesheetsKdbx);
+- 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.XslFileHtmlFull);