aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcxml.c
diff options
context:
space:
mode:
Diffstat (limited to 'fontconfig/src/fcxml.c')
-rw-r--r--fontconfig/src/fcxml.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c
index b464b4ede..8ff10b6e6 100644
--- a/fontconfig/src/fcxml.c
+++ b/fontconfig/src/fcxml.c
@@ -2233,11 +2233,6 @@ FcParseInclude (FcConfigParse *parse)
/* No config dir nor file on the XDG directory spec compliant place
* so need to guess what it is supposed to be.
*/
- FcChar8 *parent = FcStrDirname (s);
-
- if (!FcFileIsDir (parent))
- FcMakeDirectory (parent);
- FcStrFree (parent);
if (FcStrStr (s, (const FcChar8 *)"conf.d") != NULL)
goto userdir;
else
@@ -2259,6 +2254,11 @@ FcParseInclude (FcConfigParse *parse)
{
if (FcFileIsDir (filename))
{
+ FcChar8 *parent = FcStrDirname (userdir);
+
+ if (!FcFileIsDir (parent))
+ FcMakeDirectory (parent);
+ FcStrFree (parent);
if (FcFileIsDir (userdir) ||
rename ((const char *)filename, (const char *)userdir) != 0 ||
symlink ((const char *)userdir, (const char *)filename) != 0)
@@ -2272,6 +2272,11 @@ FcParseInclude (FcConfigParse *parse)
}
else
{
+ FcChar8 *parent = FcStrDirname (userconf);
+
+ if (!FcFileIsDir (parent))
+ FcMakeDirectory (parent);
+ FcStrFree (parent);
if (FcFileIsFile (userconf) ||
rename ((const char *)filename, (const char *)userconf) != 0 ||
symlink ((const char *)userconf, (const char *)filename) != 0)