summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-04-14 18:37:07 +0300
committerEli Zaretskii <eliz@gnu.org>2015-04-14 18:37:07 +0300
commit8802474a219ad3be01825466a8837d3775f8b31b (patch)
tree29980a171fbdccea71adc64c9c022bf41f84856f /admin
parentb5919771aea2d43c64be381b7d7b395eeb1191bd (diff)
Assign correct general-category and names to surrogates
* admin/unidata/unidata-gen.el (unidata-setup-list): Don't ignore surrogates. This avoids assigning them the default general-category of 'Cn', i.e. unassigned codepoints. (unidata-get-name): Give surrogates synthetic names.
Diffstat (limited to 'admin')
-rw-r--r--admin/unidata/unidata-gen.el14
1 files changed, 8 insertions, 6 deletions
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index 8af6fa0dd72..583d492495c 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -102,7 +102,8 @@
(tail table)
(block-names '(("^<CJK Ideograph" . CJK\ IDEOGRAPH)
("^<Hangul Syllable" . HANGUL\ SYLLABLE)
- ("^<.*Surrogate" . nil)
+ ("^<.*High Surrogate" . HIGH\ SURROGATE)
+ ("^<.*Low Surrogate" . LOW\ SURROGATE)
("^<.*Private Use" . PRIVATE\ USE)))
val char name)
(setq unidata-text-file (expand-file-name unidata-text-file unidata-dir))
@@ -137,11 +138,8 @@
(if (string-match (caar l) block-name)
(setq name (cdar l) l nil)
(setq l (cdr l))))
- (if (not name)
- ;; As this is a surrogate pair range, ignore it.
- (setq val nil)
- (setcar val (cons first char))
- (setcar (cdr val) name))))
+ (setcar val (cons first char))
+ (setcar (cdr val) name)))
(when val
(setcdr tail (list val))
@@ -783,6 +781,10 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
(format "%s-%04X" sym char))
((eq sym 'CJK\ COMPATIBILITY\ IDEOGRAPH)
(format "%s-%04X" sym char))
+ ((eq sym 'HIGH\ SURROGATE)
+ (format "%s-%04X" sym char))
+ ((eq sym 'LOW\ SURROGATE)
+ (format "%s-%04X" sym char))
((eq sym 'VARIATION\ SELECTOR)
(format "%s-%d" sym (+ (- char #xe0100) 17))))))))