From: Patrick McCarty Date: Sat, 30 Jan 2010 17:18:58 +0000 (-0800) Subject: Revert "Fontconfig: simplify font caching process." X-Git-Tag: release/2.13.12-1~23 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f2f6fed22cd81850c4e942334f9f43156457c0cc;p=lilypond.git Revert "Fontconfig: simplify font caching process." This reverts commit bf41cfe25aaf50d1eda70ec664837c474aba314d. --- diff --git a/lily/font-config.cc b/lily/font-config.cc index 65ec1b0036..a7acda7cba 100644 --- a/lily/font-config.cc +++ b/lily/font-config.cc @@ -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 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