Subject: bug#71568: 30.0.50; Noto Color Emoji does not work in Emacs for Android

From: Ant <[email-masked]>
Date: Sat, 15 Jun 2024 15:54:49 +0200

Good evening, I've been trying to view emojis on Emacs for Android and
noticed that colored emojis do not appear, while monochrome emojis do
appear instead. I've only experimented with Noto Emoji Colore and Noto
Emojis so far.

Steps to reproduce:

1. Install both Noto Emoji (monochrome emojis) and Noto Emoji Color
(colored emojis) and copy the two .TTF files to ~/fonts

2. Restart Emacs with -Q

3. Execute the following

(set-fontset-font t 'emoji '("Noto Color Emoji" . "iso10646-1") nil
'prepend)

4. Try to insert emojis and notice that blank "spaces" are inserted,
instead

5. Repeat step 3 but with "Noto Emoji" font and see how the blank spaces
are filled with the respective monochrome emojis

I'm using the latest SourceForge release of Emacs for Android.

If this is not a big but a known limitation known I believe
it's appropriate to specify it under Android section of the Emacs manual

Thank you in advance!

In GNU Emacs 30.0.50 (build 1, aarch64-unknown-linux-android29) of
 2024-06-14 built on xeon
Repository revision: a458dc5dc828cfbe5d74226d6ef45a3d205cb7d8
Windowing system distributor 'Sony', version 31.0.0
System Description: Sony/XQ-AS52_EEA/XQ-AS52:12/58.2.A.10.126/058002A010012603718185433:user/release-keys

Configured using:
 'configure --with-png=yes --with-webp=yes --with-gif=yes
 --with-jpeg=yes --with-xml2=yes --with-sqlite3=yes --with-gnutls=yes
 --with-tiff=yes --with-selinux=yes --with-modules=yes
 --with-tree-sitter=yes --with-imagemagick=no --with-lcms2=yes
 --with-mailutils= --with-pop=no-by-default --with-harfbuzz=yes
 --with-threads=yes --with-rsvg=yes --enable-check-lisp-object-type=
 'CFLAGS=-O2 -Werror=implicit-function-declaration''

Configured features:
GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBSELINUX LIBXML2 MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP
ZLIB

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Info

Minor modes in effect:
  diff-hl-margin-mode: t
  diff-hl-flydiff-mode: t
  server-mode: t
  global-org-modern-mode: t
  text-scale-mode: t
  beacon-mode: t
  marginalia-mode: t
  vertico-mouse-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  global-form-feed-mode: t
  repeat-mode: t
  save-place-mode: t
  savehist-mode: t
  global-so-long-mode: t
  global-auto-revert-mode: t
  recentf-mode: t
  override-global-mode: t
  smart-mark-mode: t
  delete-selection-mode: t
  on-screen-global-mode: t
  pixel-scroll-precision-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  modifier-bar-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  isearch-fold-quotes-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t

Load-path shadows:
/data/data/org.gnu.emacs/files/.emacs.d/elpa/transient-20231216.1908/transient hides /assets/lisp/transient
/data/data/org.gnu.emacs/files/.emacs.d/elpa/landmark-1.0/landmark hides /assets/lisp/obsolete/landmark

Features:
(shadow sort mixed-pitch mail-extr emacsbug message yank-media puny
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils magit-base magit-section crm dash
info-colors help-fns radix-tree mule-util vertico-directory
cursor-sensor view ligature display-line-numbers diff-hl-show-hunk
diff-hl-inline-popup diff-hl-margin diff-hl-dired dired dired-loaddefs
diff-hl-flydiff diff diff-hl log-view pcvs-util vc-dir ewoc vc
vc-dispatcher diff-mode track-changes hl-line hl-todo hideshow server
init org-lazy-babel conf-org doct org-inlinetask warnings org-num
org-modern org-agenda org-element org-persist xdg org-id org-element-ast
inline avl-tree generator org-capture org-refile org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit
executable ob-comint org-pcomplete pcomplete comint ansi-osc ansi-color
org-list org-footnote org-faces org-entities time-date org-version
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx org-fold
org-fold-core org-keys oc org-loaddefs thingatpt advice find-func
cal-menu calendar cal-loaddefs org-compat org-macs format-spec
conf-major-modes hydra lv init-eye-candy outline-minor-faces noutline
outline nano-theme face-remap nano-theme-support disp-table
all-the-icons all-the-icons-faces data-material data-weathericons
data-octicons data-fileicons data-faicons data-alltheicons beacon setup
init-window-buffers init-modeline init-minibuffer marginalia
vertico-mouse vertico-multiform vertico init-completion orderless
init-help init-essential form-feed which-key repeat saveplace savehist
so-long autorevert filenotify recentf tree-widget edmacro kmacro
cl-extra help-mode bind-key misc-utils easy-mmode smart-mark delsel
on-screen pixel-scroll cua-base ring no-littering compat
init-package-list finder-inf os-android cus-edit pp cus-load wid-edit
ace-window-autoloads adaptive-wrap-autoloads advice-patch-autoloads
aggressive-indent-autoloads all-the-icons-completion-autoloads
all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads
all-the-icons-autoloads backline-autoloads beacon-autoloads
calfw-autoloads cape-autoloads cdlatex-autoloads centaur-tabs-autoloads
cider-autoloads clojure-mode-autoloads consult-dir-autoloads
consult-eglot-autoloads consult-flyspell-autoloads
consult-ls-git-autoloads consult-notes-autoloads
consult-org-roam-autoloads consult-project-extra-autoloads
consult-yasnippet-autoloads crdt-autoloads crux-autoloads
current-window-only-autoloads denote-menu-autoloads denote-autoloads
diff-hl-autoloads dimmer-autoloads dired-du-autoloads
dired-git-info-autoloads dired-toggle-sudo-autoloads doc-toc-autoloads
doct-autoloads eldev-autoloads eldoc-box-autoloads elisp-demos-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
envrc-autoloads expand-region-autoloads eyebrowse-autoloads
flycheck-eldev-autoloads flycheck-autoloads forge-autoloads
closql-autoloads form-feed-autoloads ghub-autoloads helpful-autoloads
elisp-refs-autoloads highlight-indent-guides-autoloads
ibuffer-project-autoloads ibuffer-sidebar-autoloads ibuffer-vc-autoloads
info-colors-autoloads inheritenv-autoloads kaolin-themes-autoloads
autothemer-autoloads landmark-autoloads ligature-autoloads
literate-calc-mode-autoloads magit-annex-autoloads magit-todos-autoloads
magit-autoloads git-commit-autoloads hl-todo-autoloads
marginalia-autoloads markdown-mode-autoloads math-symbols-autoloads
minions-autoloads mixed-pitch-autoloads mpv-autoloads
nano-dialog-autoloads nano-theme-autoloads nlinum-autoloads
no-littering-autoloads nov-autoloads ob-ipython-autoloads
dash-functional-autoloads ob-mermaid-autoloads olivetti-autoloads
on-screen-autoloads orderless-autoloads org-appear-autoloads
org-board-autoloads org-caldav-autoloads org-calibre-notes-autoloads
org-cliplink-autoloads org-download-autoloads async-autoloads
org-drill-autoloads org-fragtog-autoloads org-mime-autoloads
org-modern-autoloads org-mpv-notes-autoloads org-msg-autoloads
org-notebook-autoloads org-noter-pdftools-autoloads
org-notifications-autoloads org-notify-autoloads org-pdftools-autoloads
org-noter-autoloads org-pomodoro-autoloads alert-autoloads
log4e-autoloads gntp-autoloads org-present-autoloads org-ql-autoloads
org-recur-autoloads org-ref-autoloads citeproc-autoloads
bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads
avy-autoloads htmlize-autoloads f-autoloads org-remark-autoloads
org-roam-ui-autoloads org-roam-autoloads magit-section-autoloads
emacsql-autoloads org-special-block-extras-autoloads lolcat-autoloads
dad-joke-autoloads lf-autoloads org-super-agenda-autoloads
org-transclusion-autoloads other-frame-window-autoloads
outline-minor-faces-autoloads ov-autoloads ox-hugo-autoloads
ox-pandoc-autoloads ht-autoloads ox-reveal-autoloads
pandoc-mode-autoloads hydra-autoloads lv-autoloads parsebib-autoloads
parseedn-autoloads parseclj-autoloads pcre2el-autoloads
pdf-tools-autoloads persist-autoloads pkg-info-autoloads epl-autoloads
powerline-autoloads queue-autoloads sesman-autoloads setup-autoloads
simple-httpd-autoloads sketch-mode-autoloads smart-mark-autoloads
sound-wav-autoloads deferred-autoloads spinner-autoloads
string-inflection-autoloads svg-tag-mode-autoloads svg-lib-autoloads
switchy-window-autoloads tablist-autoloads toc-org-autoloads
tomelr-autoloads transcribe-autoloads transient-autoloads
transpose-frame-autoloads treepy-autoloads treesit-auto-autoloads
ts-autoloads s-autoloads vertico-autoloads vundo-autoloads
web-mode-autoloads websocket-autoloads which-key-autoloads
windresize-autoloads with-editor-autoloads xr-autoloads
xref-union-autoloads yaml-autoloads yasnippet-classic-snippets-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads zone-nyan-autoloads
esxml-autoloads kv-autoloads zone-rainbow-autoloads
zone-select-autoloads info dash-autoloads zone-sl-autoloads
zones-autoloads zop-to-char-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs icons password-cache json
subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib
early-init doom-lib pcase rmc iso-transl tooltip cus-start cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel android-win term/common-win touch-screen ls-lisp tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads inotify android multi-tty
move-toolbar make-network-process emacs)

Memory information:
((conses 16 615290 4671154) (symbols 48 31176 1208) (strings 32 164644 110202)
 (string-bytes 1 4229005) (vectors 16 50540) (vector-slots 8 586902 334414)
 (floats 8 594 2272) (intervals 56 43891 20944) (buffers 992 14))