From: Masamichi Hosoda Date: Sat, 8 Aug 2015 13:16:41 +0000 (+0900) Subject: Issue 4544 / 1: Divide LilyPond local fontconfig conf file loading X-Git-Tag: release/2.19.26-1~53 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=62a6e9aef6f164641a4ac57e3342b7917c6a53b0;p=lilypond.git Issue 4544 / 1: Divide LilyPond local fontconfig conf file loading This commit divides LilyPond local fontconfig conf file loading into each before and after loading default conf file. --- diff --git a/lily/font-config.cc b/lily/font-config.cc index 26a9799b76..821dbffd74 100644 --- a/lily/font-config.cc +++ b/lily/font-config.cc @@ -38,7 +38,41 @@ init_fontconfig () debug_output (_ ("Initializing FontConfig...")); /* TODO: Find a way for Fontconfig to update its cache, if needed. */ - font_config_global = FcInitLoadConfig (); + FcConfig *font_config_dummy = FcInitLoadConfig (); + + /* Create an empty configuration */ + font_config_global = FcConfigCreate (); + + /* fontconfig conf files */ + vector confs; + + /* LilyPond local fontconfig conf file 00 + This file is loaded *before* fontconfig's default conf. */ + confs.push_back (lilypond_datadir + "/fonts/00-lilypond-fonts.conf"); + + /* fontconfig's default conf file */ + void *default_conf = FcConfigFilename (NULL); + confs.push_back (static_cast(default_conf)); + FcStrFree(static_cast(default_conf)); + + /* LilyPond local fontconfig conf file 99 + This file is loaded *after* fontconfig's default conf. */ + confs.push_back (lilypond_datadir + "/fonts/99-lilypond-fonts.conf"); + + /* Load fontconfig conf files */ + for (vector::const_iterator it = confs.begin (); + it != confs.end (); + it++) + { + if (!FcConfigParseAndLoad (font_config_global, + (FcChar8 *)it->c_str (), + FcFalse)) + error (_f ("failed to add fontconfig configuration file `%s'", + it->c_str ())); + else + debug_output (_f ("Adding fontconfig configuration file: %s", + it->c_str ())); + } /* Extra trailing slash suddenly breaks fontconfig (fc-cache 2.5.0) on windows. */ @@ -49,17 +83,6 @@ init_fontconfig () else debug_output (_f ("Adding font directory: %s", dir.c_str ())); - string conf (lilypond_datadir + "/fonts/lilypond-fonts.conf"); - - if (!FcConfigParseAndLoad (font_config_global, - (FcChar8 *)conf.c_str (), - FcFalse)) - error (_f ("failed adding fontconfig configuration file: %s", - conf.c_str ())); - else - debug_output (_f ("Adding fontconfig configuration file: %s", - conf.c_str ())); - debug_output (_ ("Building font database...")); FcConfigBuildFonts (font_config_global);