[PATCH] fdo#32263
Takeshi Abe
tabe at fixedpoint.jp
Sun May 29 08:01:59 PDT 2011
use $HOME/.config unless XDG_CONFIG_HOME is set with respect to
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
moreover, lose dot so as "$HOME/.config/libreoffice".
---
sal/osl/unx/security.c | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/sal/osl/unx/security.c b/sal/osl/unx/security.c
index 8cda087..f0f82ec 100644
--- a/sal/osl/unx/security.c
+++ b/sal/osl/unx/security.c
@@ -360,18 +360,37 @@ sal_Bool SAL_CALL osl_getConfigDir(oslSecurity Security, rtl_uString **pustrDire
#ifndef MACOSX
+#define DOT_CONFIG "/.config"
+
static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
{
sal_Char *pStr = getenv("XDG_CONFIG_HOME");
if ((pStr == NULL) || (strlen(pStr) == 0) ||
(access(pStr, 0) != 0))
- return (osl_psz_getHomeDir(Security, pszDirectory, nMax));
+ {
+ // a default equal to $HOME/.config should be used.
+ if (!osl_psz_getHomeDir(Security, pszDirectory, nMax))
+ return sal_False;
+ size_t n = strlen(pszDirectory);
+ if (n + sizeof(DOT_CONFIG) < nMax)
+ {
+ strncpy(pszDirectory+n, DOT_CONFIG, sizeof(DOT_CONFIG));
+ if (access(pszDirectory, 0) != 0)
+ {
+ // resort to HOME
+ pszDirectory[n] = '\0';
+ }
+ }
+ }
+ else
+ strncpy(pszDirectory, pStr, nMax);
- strncpy(pszDirectory, pStr, nMax);
return sal_True;
}
+#undef DOT_CONFIG
+
#else
/*
--
1.7.2.5
----Next_Part(Mon_May_30_23_39_07_2011_501)----
More information about the LibreOffice
mailing list