From 2ea6310ef6e6c954544e4e296935b254e24f6ad0 Mon Sep 17 00:00:00 2001 From: tomo Date: Wed, 18 Feb 2004 05:19:41 +0000 Subject: [PATCH] (char-ideographic-strokes): Modify preferences to support inheritance. (update-ideograph-radical-table): Check radical of inherited character. (char-daikanwa): Modify preferences to support inheritance. (char-ucs): Use `char-feature' instead of `get-char-attribute' to refer '=>ucs'. --- lisp/utf-2000/ideograph-util.el | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lisp/utf-2000/ideograph-util.el b/lisp/utf-2000/ideograph-util.el index 2c38d12..431f9c9 100644 --- a/lisp/utf-2000/ideograph-util.el +++ b/lisp/utf-2000/ideograph-util.el @@ -109,17 +109,18 @@ ;;;###autoload (defun char-ideographic-strokes (char &optional radical preferred-domains) (let (ret) - (or (char-ideographic-strokes-from-domains - char preferred-domains radical) - (char-feature char 'ideographic-strokes) - (char-ideographic-strokes-from-domains - char char-db-feature-domains radical) - (catch 'tag + (or (catch 'tag (dolist (cell (get-char-attribute char 'ideographic-)) (if (and (setq ret (plist-get cell :radical)) (or (eq ret radical) (null radical))) (throw 'tag (plist-get cell :strokes))))) + (char-ideographic-strokes-from-domains + char preferred-domains radical) + (get-char-attribute char 'ideographic-strokes) + (char-ideographic-strokes-from-domains + char char-db-feature-domains radical) + (char-feature char 'ideographic-strokes) (get-char-attribute char 'daikanwa-strokes) (let ((strokes (or (get-char-attribute char 'kangxi-strokes) @@ -167,6 +168,8 @@ (dolist (char (cons chr (get-char-attribute chr '->denotational))) (when (and radical + (eq radical + (char-ideographic-radical char radical)) (or (null (setq script (get-char-attribute char 'script))) (memq 'Ideograph script))) @@ -301,18 +304,18 @@ (defun char-daikanwa (char) (or (encode-char char 'ideograph-daikanwa 'defined-only) (encode-char char '=daikanwa-rev2 'defined-only) + (get-char-attribute char 'morohashi-daikanwa) (let ((ret (char-feature char '=>daikanwa))) (and ret (if (or (get-char-attribute char '<-subsumptive) (get-char-attribute char '<-denotational)) (list ret 0) - ret))) - (get-char-attribute char 'morohashi-daikanwa))) + ret))))) ;;;###autoload (defun char-ucs (char) (or (encode-char char '=ucs 'defined-only) - (get-char-attribute char '=>ucs))) + (char-feature char '=>ucs))) (defun char-id (char) (logand (char-int char) #x3FFFFFFF)) -- 1.7.10.4