emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/emoji b5c8924: Make describe-char describe compositions


From: Lars Ingebrigtsen
Subject: scratch/emoji b5c8924: Make describe-char describe compositions
Date: Thu, 28 Oct 2021 19:14:48 -0400 (EDT)

branch: scratch/emoji
commit b5c89247e274912a7b352f369f160c5ba4b00b56
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Make describe-char describe compositions
---
 lisp/descr-text.el | 9 ++++++++-
 lisp/play/emoji.el | 5 +++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 9887116..f84a3dd 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -417,6 +417,7 @@ The character information includes:
            (display-table (or (window-display-table)
                               buffer-display-table
                               standard-display-table))
+           (composition-string nil)
            (disp-vector (and display-table (aref display-table char)))
            (multibyte-p enable-multibyte-characters)
            (overlays (mapcar (lambda (o) (overlay-properties o))
@@ -538,7 +539,8 @@ The character information includes:
                     (setcar composition nil)))
                 (setcar (cdr composition)
                         (format "composed to form \"%s\" (see below)"
-                                (buffer-substring from to)))))
+                                (setq composition-string
+                                      (buffer-substring from to))))))
             (setq composition nil)))
 
       (setq item-list
@@ -682,6 +684,11 @@ The character information includes:
                       (if display
                           (format "terminal code %s" display)
                         "not encodable for terminal"))))))
+              ,@(when-let ((composition-name
+                            (and composition-string
+                                 (eq (aref char-script-table char) 'emoji)
+                                 (emoji-composition-name composition-string))))
+                  (list (list "composition name" composition-name)))
               ,@(let ((face
                        (if (not (or disp-vector composition))
                            (cond
diff --git a/lisp/play/emoji.el b/lisp/play/emoji.el
index a204cc2..2209625 100644
--- a/lisp/play/emoji.el
+++ b/lisp/play/emoji.el
@@ -110,6 +110,11 @@ when the command was issued."
         (emoji--list-generate nil (cons nil emoji--labels))
         (goto-char (point-min))))))
 
+;;;###autoload
+(defun emoji-composition-name (glyph)
+  (require 'emoji-labels)
+  (gethash glyph emoji--names))
+
 (defun emoji--list-generate (name alist)
   (let ((width (/ (window-width) 5))
         (mname (pop alist)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]