Function: emoji--adjust-displayable-1
emoji--adjust-displayable-1 is a byte-compiled function defined in
emoji.el.gz.
Signature
(emoji--adjust-displayable-1 ALIST)
Source Code
;; Defined in /usr/src/emacs/lisp/international/emoji.el.gz
(defun emoji--adjust-displayable-1 (alist)
(if (consp (caddr alist))
(dolist (child (cdr alist))
(emoji--adjust-displayable-1 child))
(while (cdr alist)
(let ((glyph (cadr alist)))
;; Store all the emojis for later retrieval by
;; the search feature.
(when-let* ((name (emoji--name glyph)))
(setf (gethash (downcase name) emoji--all-bases) glyph))
(if (display-graphic-p)
;; Remove glyphs we don't have in graphical displays.
(if (let ((char (elt glyph 0)))
(if emoji--font
(font-has-char-p emoji--font char)
(when-let* ((font (car (internal-char-font nil char))))
(setq emoji--font font))))
(setq alist (cdr alist))
;; Remove the element.
(setcdr alist (cddr alist)))
;; We don't have font info on non-graphical displays.
(if (let ((char (elt glyph 0)))
;; FIXME. Some grapheme clusters display more or less
;; correctly in the terminal, but we don't really know
;; which ones. None of these display totally
;; correctly, though, so should they be filtered out?
(char-displayable-p char))
(setq alist (cdr alist))
;; Remove the element.
(setcdr alist (cddr alist))))))))