]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/all-font-metrics.cc
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / lily / all-font-metrics.cc
index 4d95f9e6c1c00fd4aab59a5b1f3e7f6e0d38f202..61b0a60e6f988f741160882a2a2037db7070ed81 100644 (file)
 #include "scm-hash.hh"
 #include "warn.hh"
 
+
+Index_to_charcode_map const *
+All_font_metrics::get_index_to_charcode_map (string filename, FT_Face face)
+{
+  if (filename_charcode_maps_map_.find (filename)
+      == filename_charcode_maps_map_.end ())
+    filename_charcode_maps_map_[filename] = make_index_to_charcode_map (face);
+
+  return &filename_charcode_maps_map_[filename];
+}
+
+
 All_font_metrics::All_font_metrics (string path)
 {
   otf_dict_ = new Scheme_hash_table;
@@ -158,7 +170,7 @@ All_font_metrics::find_font (string name)
 
   if (!f)
     {
-      error (_f ("can't find font: `%s'", name.c_str ()));
+      error (_f ("cannot find font: `%s'", name.c_str ()));
     }
 
   return f;
@@ -166,6 +178,17 @@ All_font_metrics::find_font (string name)
 
 All_font_metrics *all_fonts_global;
 
+LY_DEFINE (ly_reset_all_fonts, "ly:reset-all-fonts", 0, 0, 0,
+          (),
+          "Forget all about previously loaded fonts. ")
+{
+  delete all_fonts_global;
+  all_fonts_global = new All_font_metrics (global_path.to_string ());
+
+  return SCM_UNSPECIFIED;
+}
+
+
 LY_DEFINE (ly_font_load, "ly:font-load", 1, 0, 0,
           (SCM name),
           "Load the font @var{name}. ")
@@ -177,3 +200,4 @@ LY_DEFINE (ly_font_load, "ly:font-load", 1, 0, 0,
   return fm->self_scm ();
 }
 
+