[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/emoji 38008df 1/2: Add new font-has-char-p primitive
From: |
Lars Ingebrigtsen |
Subject: |
scratch/emoji 38008df 1/2: Add new font-has-char-p primitive |
Date: |
Sun, 31 Oct 2021 11:51:41 -0400 (EDT) |
branch: scratch/emoji
commit 38008dfea941ab132da0c49f988cea89d1c334f6
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Add new font-has-char-p primitive
---
src/font.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/font.c b/src/font.c
index 5e761ab..ef77875 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4977,6 +4977,32 @@ If the font is not OpenType font, CAPABILITY is nil. */)
: Qnil));
}
+DEFUN ("font-has-char-p", Ffont_has_char_p, Sfont_has_char_p, 2, 3, 0,
+ doc:
+ /* Say whether FONT-OBJECT has a glyph for CHAR.
+If the optional FRAME parameter is nil, the selected frame is used. */)
+ (Lisp_Object font_object, Lisp_Object character, Lisp_Object frame)
+{
+ struct frame* f;
+ CHECK_FONT (font_object);
+ CHECK_CHARACTER (character);
+
+ if (NILP (frame))
+ f = XFRAME (selected_frame);
+ else
+ {
+ CHECK_FRAME (frame);
+ f = XFRAME (frame);
+ }
+
+ int c = XFIXNAT (character);
+
+ if (font_has_char (f, font_object, c) <= 0)
+ return Qnil;
+ else
+ return Qt;
+}
+
DEFUN ("font-get-glyphs", Ffont_get_glyphs, Sfont_get_glyphs, 3, 4, 0,
doc:
/* Return a vector of FONT-OBJECT's glyphs for the specified characters.
@@ -5548,6 +5574,7 @@ syms_of_font (void)
defsubr (&Sclose_font);
defsubr (&Squery_font);
defsubr (&Sfont_get_glyphs);
+ defsubr (&Sfont_has_char_p);
defsubr (&Sfont_match_p);
defsubr (&Sfont_at);
#if 0