[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-29 2f94f6de9d6: Make VS-15 and VS-16 compositions work correctly,
Robert Pluim <=