-Tex_font_metric *
-All_font_metrics::find_tfm (String name)
-{
- SCM sname = ly_symbol2scm (name.to_str0 ());
- SCM name_string = scm_makfrom0str (name.to_str0 ());
- SCM val;
- if (!tfm_dict_->try_retrieve (sname, &val))
- {
- String file_name;
-
- if (file_name.is_empty ())
- {
- /* FIXME: should add "cork-" prefix to lm* fonts. How to do
- that, cleanly? */
- String p = kpathsea_find_file (name, "tfm");
- if (p.length ())
- file_name = p;
- }
-
- if (file_name.is_empty ())
- file_name = search_path_.find (name + ".tfm");
- if (file_name.is_empty ())
- return 0;
-
- if (be_verbose_global)
- progress_indication ("[" + file_name);
-
- val = Tex_font_metric::make_tfm (file_name);
-
- if (be_verbose_global)
- progress_indication ("]");
-
- unsmob_metrics (val)->file_name_ = file_name;
- unsmob_metrics (val)->description_ = scm_cons (name_string,
- scm_from_double (1.0));
- tfm_dict_->set (sname, val);
- unsmob_metrics (val)->unprotect ();
- }
-
- return dynamic_cast<Tex_font_metric *> (unsmob_metrics (val));
-}
-