]> git.donarmstrong.com Git - lilypond.git/commitdiff
Revert "Fontconfig: simplify font caching process."
authorPatrick McCarty <pnorcks@gmail.com>
Sat, 30 Jan 2010 17:18:58 +0000 (09:18 -0800)
committerPatrick McCarty <pnorcks@gmail.com>
Sat, 30 Jan 2010 17:18:58 +0000 (09:18 -0800)
This reverts commit bf41cfe25aaf50d1eda70ec664837c474aba314d.

lily/font-config.cc

index 65ec1b003672193f0c2014d948e24815b0a48b45..a7acda7cbad5b282e7acbcbe846d64fce07dfc00 100644 (file)
@@ -40,7 +40,21 @@ init_fontconfig ()
     message (_ ("Initializing FontConfig..."));
 
   font_config_global = FcInitLoadConfig ();
+  FcChar8 *cache_file = FcConfigGetCache (font_config_global);
 
+#if 0
+  // always returns 0 for FC 2.4
+  if (!cache_file)
+    programming_error ("Cannot find file for FontConfig cache.");
+#endif
+  /*
+    This is a terrible kludge, but there is apparently no way for
+    FontConfig to signal whether it needs to rescan directories.
+   */ 
+  if (cache_file
+      && !is_file ((char const *)cache_file))
+    message (_f ("Rebuilding FontConfig cache %s, this may take a while...", cache_file));
+                       
   vector<string> dirs;
 
   /* Extra trailing slash suddenly breaks fontconfig (fc-cache 2.5.0)
@@ -59,12 +73,20 @@ init_fontconfig ()
   
   if (be_verbose_global)
     message (_ ("Building font database."));
-
-  FcInitBringUptoDate ();
-
+  FcConfigBuildFonts (font_config_global);
+  FcConfigSetCurrent (font_config_global);
   if (be_verbose_global)
     message ("\n");
 
+  if (cache_file
+      && !is_file ((char*)cache_file))
+    {
+      /* inhibit future messages. */
+      FILE *f = fopen ((char*)cache_file, "w");
+      if (f)
+       fclose (f);
+    }
+  
 }
 
 #else