Function: font-xlfd-name
font-xlfd-name is a function defined in font.c.
Signature
(font-xlfd-name FONT &optional FOLD-WILDCARDS)
Documentation
Return XLFD name of FONT.
FONT is a font-spec, font-entity, or font-object. If the name is too long for XLFD (maximum 255 chars), return nil. If the 2nd optional arg FOLD-WILDCARDS is non-nil, the consecutive wildcards are folded into one.
Probably introduced at or before Emacs version 23.1.
Source Code
// Defined in /usr/src/emacs/src/font.c
{
char name[256];
int namelen, pixel_size = 0;
CHECK_FONT (font);
if (FONT_OBJECT_P (font))
{
Lisp_Object font_name = AREF (font, FONT_NAME_INDEX);
if (STRINGP (font_name)
&& SDATA (font_name)[0] == '-')
{
if (NILP (fold_wildcards))
return font_name;
lispstpcpy (name, font_name);
namelen = SBYTES (font_name);
goto done;
}
pixel_size = XFONT_OBJECT (font)->pixel_size;
}
namelen = font_unparse_xlfd (font, pixel_size, name, 256);
if (namelen < 0)
return Qnil;
done:
if (! NILP (fold_wildcards))
{
char *p0 = name, *p1;
while ((p1 = strstr (p0, "-*-*")))
{
memmove (p1, p1 + 2, (name + namelen + 1) - (p1 + 2));
namelen -= 2;
p0 = p1;
}
}
return make_string (name, namelen);
}