GNU bug report logs - #44020
28.0.50; Prefer selection of colour emoji fonts?

Previous Next

Package: emacs;

Reported by: Lars Ingebrigtsen <larsi <at> gnus.org>

Date: Thu, 15 Oct 2020 18:12:01 UTC

Severity: normal

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 44020 <at> debbugs.gnu.org, larsi <at> gnus.org
Subject: bug#44020: 28.0.50; Prefer selection of colour emoji fonts?
Date: Mon, 19 Oct 2020 21:00:03 +0200
>>>>> On Mon, 19 Oct 2020 21:52:13 +0300, Eli Zaretskii <eliz <at> gnu.org> said:

    >> From: Robert Pluim <rpluim <at> gmail.com>
    >> Cc: 44020 <at> debbugs.gnu.org,  larsi <at> gnus.org
    >> Date: Mon, 19 Oct 2020 20:34:41 +0200
    >> 
    >> (set-fontset-font t 'emoji '("Apple Color Emoji . "iso1064601") nil
    >> 'prepend)
    >> 
    >> It *should* work as-is on GNU/Linux, but for some reason Emacs is
    >> completely refusing to use any Emoji fonts for me there. Itʼs possible
    >> Iʼve messed up my system somehow, since emacs-27 has the same issue,
    >> but Iʼm seeing some very suspicious results from
    >> ftcrfont_glyph_extents (the font average width is always 0), so perhaps
    >> we need to adjust our font code.

    Eli> Didn't someone say they can see color emoji on Cairo?

Lars said he could, and itʼs in the NEWS file, so it worked at some
point. I canʼt get either Noto Color Emoji nor Emoji One to work on
GNU/Linux, because the following code in font.c bugs out

  /* We always open a font of manageable size; i.e non-zero average
     width and height.  */
  for (psize = pixel_size; ; psize++)
    {
      font_object = driver_list->driver->open_font (f, entity, psize);
      if (NILP (font_object))
	return Qnil;
      font = XFONT_OBJECT (font_object);
      if (font->average_width > 0 && font->height > 0)
	break;
      /* Avoid an infinite loop.  */
      if (psize > pixel_size + 15)
	return Qnil; <====== here
    }

and thatʼs because font->average_width is always 0.

Robert
-- 




This bug report was last modified 3 years and 198 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.