emacs-diffs
[Top][All Lists]
Advanced

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

emacs-29 2f94f6de9d6: Make VS-15 and VS-16 compositions work correctly


From: Robert Pluim
Subject: emacs-29 2f94f6de9d6: Make VS-15 and VS-16 compositions work correctly
Date: Fri, 2 Jun 2023 08:14:58 -0400 (EDT)

branch: emacs-29
commit 2f94f6de9d64f9fd89284dac171e166e7d721dcd
Author: Robert Pluim <rpluim@gmail.com>
Commit: Robert Pluim <rpluim@gmail.com>

    Make VS-15 and VS-16 compositions work correctly
    
    There is a conflict between forward matching and backward matching
    composition rules involving the same codepoint, which can cause the
    backward matching ones not to be invoked.  Ensure that VS-15 (U+FE0E)
    and VS-16 (U+FE0F) are composed by forward matching rules instead in
    order to avoid this issue.
    
    * admin/unidata/emoji-zwj.awk: Add rules for CHAR+VS-15 and CHAR+VS-16.
    * lisp/composite.el: remove backward matching rule for VS-15.  (Bug#63731)
---
 admin/unidata/emoji-zwj.awk | 3 ++-
 lisp/composite.el           | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/admin/unidata/emoji-zwj.awk b/admin/unidata/emoji-zwj.awk
index 7d2ff6cb900..f13f796bcac 100644
--- a/admin/unidata/emoji-zwj.awk
+++ b/admin/unidata/emoji-zwj.awk
@@ -106,7 +106,8 @@ END {
 
      for (elt in ch)
     {
-        printf("(#x%s .\n,(eval-when-compile (regexp-opt\n'(\n%s\n))))\n", 
elt, vec[elt])
+        entries = 
sprintf("%s\n\"\\N{U+%s}\\N{U+FE0E}\"\n\"\\N{U+%s}\\N{U+FE0F}\"", vec[elt], 
elt, elt)
+        printf("(#x%s .\n,(eval-when-compile (regexp-opt\n'(\n%s\n))))\n", 
elt, entries)
     }
      print "))"
      print "  (set-char-table-range composition-function-table"
diff --git a/lisp/composite.el b/lisp/composite.el
index fb8b76114f4..9710c3c371b 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -861,7 +861,7 @@ and the second is a glyph for a variation selector."
 ;; handled in font_range, we end up choosing the Emoji presentation
 ;; rather than the Text presentation.
 (let ((elt '([".." 1 compose-gstring-for-variation-glyph])))
-  (set-char-table-range composition-function-table '(#xFE00 . #xFE0E) elt)
+  (set-char-table-range composition-function-table '(#xFE00 . #xFE0D) elt)
   (set-char-table-range composition-function-table '(#xE0100 . #xE01EF) elt))
 
 (defun auto-compose-chars (func from to font-object string direction)



reply via email to

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