summaryrefslogtreecommitdiff
path: root/lisp/international/ucs-normalize.el
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2011-08-24 16:33:55 +0900
committerKenichi Handa <handa@m17n.org>2011-08-24 16:33:55 +0900
commitde62b4dfd0dd8254aee693b3c583386e050fb739 (patch)
tree5af21d6557b292cacb98278dd82a9741e8e7bb7f /lisp/international/ucs-normalize.el
parent963b492b635cd33a6a5dd46119208a378e3e6378 (diff)
downloademacs-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.el10
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))