diff options
author | Kenichi Handa <handa@m17n.org> | 2011-08-24 16:33:55 +0900 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2011-08-24 16:33:55 +0900 |
commit | de62b4dfd0dd8254aee693b3c583386e050fb739 (patch) | |
tree | 5af21d6557b292cacb98278dd82a9741e8e7bb7f /lisp/international/ucs-normalize.el | |
parent | 963b492b635cd33a6a5dd46119208a378e3e6378 (diff) | |
download | emacs-de62b4dfd0dd8254aee693b3c583386e050fb739.tar.gz |
international/ucs-normalize.el: If decomposition property of CHAR is the default one (i.e. a list of CHAR itself), treat it as nil.
Diffstat (limited to 'lisp/international/ucs-normalize.el')
-rw-r--r-- | lisp/international/ucs-normalize.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el index f83e0f7588f..df05b355b46 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el @@ -139,14 +139,17 @@ (defun nfd (char) (let ((decomposition (get-char-code-property char 'decomposition))) - (if (and decomposition (numberp (car decomposition))) + (if (and decomposition (numberp (car decomposition)) + (or (> (length decomposition) 1) + (/= (car decomposition) char))) decomposition))) (defun nfkd (char) (let ((decomposition (get-char-code-property char 'decomposition))) (if (symbolp (car decomposition)) (cdr decomposition) - decomposition))) + (if (or (> (length decomposition) 1) + (/= (car decomposition) char)) decomposition)))) (defun hfs-nfd (char) (when (or (and (>= char 0) (< char #x2000)) @@ -180,6 +183,9 @@ (setq ccc (ucs-normalize-ccc char)) (setq decomposition (get-char-code-property char 'decomposition)) + (if (and (= (length decomposition) 1) + (= (car decomposition) char)) + (setq decomposition nil)) (if (and ccc (/= 0 ccc)) (add-to-list 'combining-chars char)) (if (and (numberp (car decomposition)) (/= (ucs-normalize-ccc (car decomposition)) |