[Libreoffice-commits] .: sal/osl
Noel Power
noelp at kemper.freedesktop.org
Tue May 31 03:29:52 PDT 2011
sal/osl/unx/security.c | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
New commits:
commit a6f56f70a4930d3f71bd9c9b90fdd0ba20e4da5f
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Mon May 30 00:01:59 2011 +0900
fdo#32263
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".
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
/*
More information about the Libreoffice-commits
mailing list