X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffont-config.cc;h=74e591254f4a96a820984bf50b5c56c5b37418e2;hb=65ba9df14e3a74b78689aa9e504d9d45f9cd35ac;hp=8c84584caecfabd4c7d66e3b88d959d75037a83b;hpb=e3246bd7dd2cb83f203dabcb43b988507ba715a7;p=lilypond.git diff --git a/lily/font-config.cc b/lily/font-config.cc index 8c84584cae..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. */