diff options
author | Eli Zaretskii <eliz@gnu.org> | 2015-04-14 18:37:07 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2015-04-14 18:37:07 +0300 |
commit | 8802474a219ad3be01825466a8837d3775f8b31b (patch) | |
tree | 29980a171fbdccea71adc64c9c022bf41f84856f /admin | |
parent | b5919771aea2d43c64be381b7d7b395eeb1191bd (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.el | 14 |
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)))))))) |