Imported Upstream version 2.14.2
[platform/upstream/fontconfig.git] / src / fcinit.c
index 5831a19..c05cdc5 100644 (file)
@@ -41,10 +41,11 @@ FcInitFallbackConfig (const FcChar8 *sysroot)
     FcConfig   *config;
     const FcChar8 *fallback = (const FcChar8 *) ""     \
        "<fontconfig>" \
-       "  <dir>" FC_DEFAULT_FONTS "</dir>" \
+       FC_DEFAULT_FONTS \
        "  <dir prefix=\"xdg\">fonts</dir>" \
        "  <cachedir>" FC_CACHEDIR "</cachedir>" \
        "  <cachedir prefix=\"xdg\">fontconfig</cachedir>" \
+       "  <include ignore_missing=\"yes\">" CONFIGDIR "</include>" \
        "  <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/conf.d</include>" \
        "  <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/fonts.conf</include>" \
        "</fontconfig>";
@@ -199,10 +200,10 @@ void
 FcFini (void)
 {
     FcConfigFini ();
-    FcCacheFini ();
+    FcConfigPathFini ();
     FcDefaultFini ();
     FcObjectFini ();
-    FcConfigPathFini ();
+    FcCacheFini ();
 }
 
 /*
@@ -229,7 +230,8 @@ FcInitReinitialize (void)
 FcBool
 FcInitBringUptoDate (void)
 {
-    FcConfig   *config = FcConfigGetCurrent ();
+    FcConfig   *config = FcConfigReference (NULL);
+    FcBool     ret = FcTrue;
     time_t     now;
 
     if (!config)
@@ -238,19 +240,23 @@ FcInitBringUptoDate (void)
      * rescanInterval == 0 disables automatic up to date
      */
     if (config->rescanInterval == 0)
-       return FcTrue;
+       goto bail;
     /*
      * Check no more often than rescanInterval seconds
      */
     now = time (0);
     if (config->rescanTime + config->rescanInterval - now > 0)
-       return FcTrue;
+       goto bail;
     /*
      * If up to date, don't reload configuration
      */
     if (FcConfigUptoDate (0))
-       return FcTrue;
-    return FcInitReinitialize ();
+       goto bail;
+    ret = FcInitReinitialize ();
+bail:
+    FcConfigDestroy (config);
+
+    return ret;
 }
 
 #define __fcinit__