Blob Blame History Raw
From 3e5f70a16ac6d54f1e01c92ddaa5985deec1b7f9 Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Mon, 2 Sep 2013 20:51:46 +0900
Subject: [PATCH] Do not create a config dir for migration when no config files
 nor dirs

---
 src/fcxml.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/fcxml.c b/src/fcxml.c
index b464b4e..8ff10b6 100644
--- a/src/fcxml.c
+++ b/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)
-- 
1.8.3.1