Do not create a config dir for migration when no config files nor dirs
authorAkira TAGOH <akira@tagoh.org>
Mon, 2 Sep 2013 11:51:46 +0000 (20:51 +0900)
committerAkira TAGOH <akira@tagoh.org>
Mon, 2 Sep 2013 11:51:46 +0000 (20:51 +0900)
src/fcxml.c

index b464b4e..8ff10b6 100644 (file)
@@ -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)