X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fopen-type-font-scheme.cc;h=d39a7cc9d8573885168280e29978c081fc86c8f8;hb=459216bffe7aa64cd1e9f31f1fda28f90f6e9c1c;hp=147320521004d006052c76e1a9ebd50c4a61291e;hpb=1dd803cf0f3ed07a0e9e8b49dd66b84152c64b27;p=lilypond.git diff --git a/lily/open-type-font-scheme.cc b/lily/open-type-font-scheme.cc index 1473205210..d39a7cc9d8 100644 --- a/lily/open-type-font-scheme.cc +++ b/lily/open-type-font-scheme.cc @@ -35,10 +35,10 @@ LY_DEFINE (ly_otf_font_glyph_info, "ly:otf-font-glyph-info", 2, 0, 0, return scm_hashq_ref (otf->get_char_table (), sym, SCM_EOL); } - LY_DEFINE(ly_otf_font_table_data, "ly:otf-font-table-data", 2, 0, 0, (SCM font, SCM tag), - "Extract a table @var{tag} from @var{font}.") + "Extract a table @var{tag} from @var{font}. Return empty string for " + "non-existent @var{tag}.") { Modified_font_metric *fm = dynamic_cast (unsmob_metrics (font)); @@ -46,7 +46,6 @@ LY_DEFINE(ly_otf_font_table_data, "ly:otf-font-table-data", 2, 0, 0, Open_type_font *otf = fm ? dynamic_cast (fm->original_font ()) : dynamic_cast (unsmob_metrics (font)); - SCM_ASSERT_TYPE (otf, font, SCM_ARG1, __FUNCTION__, "Open type font"); SCM_ASSERT_TYPE (scm_is_string (tag), tag, SCM_ARG1, __FUNCTION__, "Open type font"); @@ -59,3 +58,16 @@ LY_DEFINE(ly_otf_font_table_data, "ly:otf-font-table-data", 2, 0, 0, return scm_from_locale_stringn ((char const*) tab.to_bytes (), tab.length ()); } + +LY_DEFINE(ly_otf_font_p, "ly:otf-font?", 1, 0, 0, + (SCM font), + "Is @var{font} an OpenType font?") +{ + Modified_font_metric *fm + = dynamic_cast (unsmob_metrics (font)); + + Open_type_font *otf = fm ? dynamic_cast (fm->original_font ()) + : dynamic_cast (unsmob_metrics (font)); + + return scm_from_bool (otf); +}