X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffont-config.cc;h=74e591254f4a96a820984bf50b5c56c5b37418e2;hb=5fb3f8cf17ce7b57d22584429d736f188e4827d7;hp=26a9799b76c5963f3ee404f2422e63ff4da89d25;hpb=6831c973d078b4e41025c27b725887028aff3e73;p=lilypond.git diff --git a/lily/font-config.cc b/lily/font-config.cc index 26a9799b76..74e591254f 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 (); + 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);