Subject: bug#39799: 28.0.50; Most emoji sequences don’t render correctly

From: Robert Pluim <[email-masked]>
Date: Fri, 28 Feb 2020 21:38:07 +0100

>>>>> On Fri, 28 Feb 2020 22:13:14 +0200, Eli Zaretskii <[email-masked]> said:

    >> (set-fontset-font nil #x24c2
    >> '("Noto Color Emoji" . "iso10646-1") nil
    >> 'prepend)
    >> 
    >> in the frame displaying the character, then it does use Noto Color
    >> Emoji. What am I missing?

    Eli> Which part makes the difference: the "fontset-default" vs nil or
    Eli> symbol-subgroup vs an explicit codepoint?

symbol-subgroup in that context is (#x2460 . #x24FF)	;; Enclosed
Alphanumerics
so I suspect it's the nil rather than "fontset-default". <time passes>

     (set-fontset-font nil '(#x2460 . #x24FF)
     '("Noto Color Emoji" . "iso10646-1") nil
    'prepend)

Makes the character display using Noto Color Emoji.

     (set-fontset-font "fontset-default" '(#x2460 . #x24FF)
     '("Noto Color Emoji" . "iso10646-1") nil
    'prepend)

gives me:

Debugger entered--Lisp error: (error "Fontset ‘default-fontset’ does not exist")
  set-fontset-font("default-fontset" (9312 . 9471) ("Noto Color Emoji" . "iso10646-1") nil prepend)
  (progn (set-fontset-font "default-fontset" '(9312 . 9471) '("Noto Color Emoji" . "iso10646-1") nil 'prepend))
  eval((progn (set-fontset-font "default-fontset" '(9312 . 9471) '("Noto Color Emoji" . "iso10646-1") nil 'prepend)) t)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

and similarly if I specify a single character rather than a
range. Using 't' instead of "default-fontset" doesnʼt error, but
doesnʼt cause any font changes either.

Robert