[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 950831c: Add glyphless-char-display-control for Variation Selecto
From: |
Robert Pluim |
Subject: |
master 950831c: Add glyphless-char-display-control for Variation Selectors |
Date: |
Sun, 26 Sep 2021 13:26:50 -0400 (EDT) |
branch: master
commit 950831c369636d8a681edc736a6c6151c1b1edee
Author: Robert Pluim <rpluim@gmail.com>
Commit: Robert Pluim <rpluim@gmail.com>
Add glyphless-char-display-control for Variation Selectors
* lisp/international/characters.el (update-glyphless-char-display):
(glyphless-char-display-control): Add control knob for U+FE00 through
U+FE0F, defaulting to 'thin-space'.
* doc/lispref/display.texi (Glyphless Chars): Document it.
---
doc/lispref/display.texi | 5 +++++
lisp/international/characters.el | 15 ++++++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 510efaf..2ae04a8 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -7952,6 +7952,11 @@ Characters of Unicode General Category [Cf], such as
U+200E
@sc{left-to-right mark}, but excluding characters that have graphic
images, such as U+00AD @sc{soft hyphen}.
+@item variation-selectors
+Unicode VS-1 through VS-16 (U+FE00 through U+FE0F), which are used to
+select between different glyphs for the same codepoints (typically
+emojis).
+
@item no-font
Characters for which there is no suitable font, or which cannot be
encoded by the terminal's coding system.
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index e08dc27..475a669 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1540,6 +1540,9 @@ option `glyphless-char-display'."
((eq target 'c1-control)
(glyphless-set-char-table-range glyphless-char-display
#x80 #x9F method))
+ ((eq target 'variation-selectors)
+ (glyphless-set-char-table-range glyphless-char-display
+ #xFE00 #xFE0F method))
((eq target 'format-control)
(when unicode-category-table
(map-char-table
@@ -1575,6 +1578,7 @@ option `glyphless-char-display'."
;;; Control of displaying glyphless characters.
(defcustom glyphless-char-display-control
'((format-control . thin-space)
+ (variation-selectors . thin-space)
(no-font . hex-code))
"List of directives to control display of glyphless characters.
@@ -1590,6 +1594,9 @@ GROUP must be one of these symbols:
such as U+200C (ZWNJ), U+200E (LRM), but
excluding characters that have graphic images,
such as U+00AD (SHY).
+ `variation-selectors': U+FE00..U+FE0F, used for choosing between
+ glyph variations (e.g. Emoji vs Text
+ presentation).
`no-font': characters for which no suitable font is found.
For character terminals, characters that cannot
be encoded by `terminal-coding-system'.
@@ -1607,7 +1614,7 @@ Do not set its value directly from Lisp; the value takes
effect
only via a custom `:set'
function (`update-glyphless-char-display'), which updates
`glyphless-char-display'."
- :version "24.1"
+ :version "28.1"
:type '(alist :key-type (symbol :tag "Character Group")
:value-type (symbol :tag "Display Method"))
:options '((c0-control
@@ -1628,6 +1635,12 @@ function (`update-glyphless-char-display'), which updates
(const :tag "Display as empty box" empty-box)
(const :tag "Display acronym" acronym)
(const :tag "Display hex code in a box" hex-code)))
+ (variation-selectors
+ (choice (const :tag "Don't display" zero-width)
+ (const :tag "Display as thin space" thin-space)
+ (const :tag "Display as empty box" empty-box)
+ (const :tag "Display acronym" acronym)
+ (const :tag "Display hex code in a box" hex-code)))
(no-font
(choice (const :tag "Don't display" zero-width)
(const :tag "Display as thin space" thin-space)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 950831c: Add glyphless-char-display-control for Variation Selectors,
Robert Pluim <=