#include "file-name.hh"
#include "international.hh"
#include "lookup.hh" // debugging
+#include "ly-module.hh"
#include "main.hh"
#include "string-convert.hh"
#include "warn.hh"
#include "all-font-metrics.hh"
#include "program-option.hh"
+#include "open-type-font.hh"
#if HAVE_PANGO_FT2
#include "stencil.hh"
+Preinit_Pango_font::Preinit_Pango_font ()
+{
+ physical_font_tab_ = SCM_EOL;
+}
+
Pango_font::Pango_font (PangoFT2FontMap *fontmap,
PangoFontDescription const *description,
Real output_scale)
{
- // This line looks stupid, but if we don't initialize physical_font_tab_ before
- // we allocate memory in scm_c_make_hash_table, then that could trigger a garbage
- // collection.
- physical_font_tab_ = SCM_EOL;
physical_font_tab_ = scm_c_make_hash_table (11);
PangoDirection pango_dir = PANGO_DIRECTION_LTR;
context_ = pango_context_new ();
b.scale (scale_);
- char const *ps_name_str0 = FT_Get_Postscript_Name (ftface);
+ const string ps_name_str0 = get_postscript_name (ftface);
FcPattern *fcpat = fcfont->font_pattern;
FcChar8 *file_name_as_ptr = 0;
Real size = pango_font_description_get_size (descr)
/ (Real (PANGO_SCALE));
- if (!ps_name_str0)
+ if (ps_name_str0.empty ())
warning (_f ("no PostScript font name for font `%s'", file_name));
string ps_name;
- if (!ps_name_str0
+ if (ps_name_str0.empty ()
&& file_name != ""
&& (file_name.find (".otf") != NPOS
|| file_name.find (".cff") != NPOS))
name = String_convert::to_lower (name);
ps_name = initial + name;
}
- else if (ps_name_str0)
+ else if (!ps_name_str0.empty ())
ps_name = ps_name_str0;
if (ps_name.length ())