From eaa9feeed7c190a5f856e58a218487cd0593d055 Mon Sep 17 00:00:00 2001 From: MORIOKA Tomohiko Date: Sun, 13 Sep 2020 15:05:10 +0900 Subject: [PATCH] =?utf8?q?(ideographic-structure-compare-functional-and-appa?= =?utf8?q?rent):=20-=20Implement=20rule-415:=20=E2=BF=B4=E2=BF=B3A=E5=9B=97B?= =?utf8?q?C=20->=20=E2=BF=B1=E2=BF=B1A=E2=BF=B4=E5=9B=97CB.=20-=20Implement=20?= =?utf8?q?rule-416:=20=E2=BF=B4=E2=BF=B3A=E5=86=96BC=20->=20=E2=BF=B1=E2=BF=B1?= =?utf8?q?=E2=BF=B1A=E5=86=96CB.=20-=20Implement=20rule-417:=20=E2=BF=B4=E2=BF?= =?utf8?q?=B3A&CDP-89A6;BC=20->=20=E2=BF=B1A=E2=BF=B8=E2=BF=B1C&CDP-89A6;B.=20?= =?utf8?q?-=20Implement=20rule-419=20(fallback):=20=E2=BF=B4=E2=BF=B3AEBC=20?= =?utf8?q?->=20=E2=BF=B1=E2=BF=B1A=E2=BF=BBECB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ids-find.el | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 2 deletions(-) diff --git a/ids-find.el b/ids-find.el index db20f4c..32bffc7 100644 --- a/ids-find.el +++ b/ids-find.el @@ -1452,8 +1452,109 @@ COMPONENT can be a character or char-spec." (list ?⿱ (nth 1 enc-str) new-str-c) 414)) )) - )) - ) + ) + ((eq (car enc-str) ?⿳) + (cond + ((and (characterp (nth 2 enc-str)) + (eq (char-ucs (nth 2 enc-str)) #x56D7)) + (unless conversion-only + (setq f-res (ids-find-chars-including-ids enc-str))) + (setq new-str (list ?⿴ (nth 2 enc-str) (nth 2 structure))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (setq new-str (list ?⿱ (nth 1 enc-str) new-str-c)) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (if conversion-only + (list ?⿱ new-str-c (nth 3 enc-str)) + (setq a-res (ids-find-chars-including-ids new-str)) + (list enc + f-res + new-str-c + a-res + (list ?⿱ new-str-c (nth 3 enc-str)) + 415)) + ) + ((and (characterp (nth 2 enc-str)) + (eq (char-ucs (nth 2 enc-str)) #x5196)) + (unless conversion-only + (setq f-res (ids-find-chars-including-ids enc-str))) + (setq new-str (list ?⿱ (nth 1 enc-str) (nth 2 enc-str))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (setq new-str (list ?⿱ new-str-c (nth 2 structure))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (if conversion-only + (list ?⿱ new-str-c (nth 3 enc-str)) + (setq a-res (ids-find-chars-including-ids new-str)) + (list enc + f-res + new-str-c + a-res + (list ?⿱ new-str-c (nth 3 enc-str)) + 416)) + ) + ((and (characterp (nth 2 enc-str)) + (or (eq (encode-char (nth 2 enc-str) '=>big5-cdp) + #x89A6) + (eq (encode-char (nth 2 enc-str) '=>gt-k) + 146) + (eq (char-ucs (nth 2 enc-str)) #x2008A))) + (unless conversion-only + (setq f-res (ids-find-chars-including-ids enc-str))) + (setq new-str (list ?⿱ (nth 2 structure) (nth 2 enc-str))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (setq new-str (list ?⿸ new-str-c (nth 3 enc-str))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (if conversion-only + (list ?⿱ (nth 1 enc-str) new-str-c) + (setq a-res (ids-find-chars-including-ids new-str)) + (list enc + f-res + new-str-c + a-res + (list ?⿱ (nth 1 enc-str) new-str-c) + 417)) + ) + (t + (unless conversion-only + (setq f-res (ids-find-chars-including-ids enc-str))) + (setq new-str (list ?⿻ (nth 2 enc-str) (nth 2 structure))) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (setq new-str (list ?⿱ (nth 1 enc-str) new-str-c)) + (setq new-str-c + (if (setq ret (ideographic-structure-find-chars new-str)) + (car ret) + (list (cons 'ideographic-structure new-str)))) + (if conversion-only + (list ?⿱ new-str-c (nth 3 enc-str)) + (setq a-res (ids-find-chars-including-ids new-str)) + (list enc + f-res + new-str-c + a-res + (list ?⿱ new-str-c (nth 3 enc-str)) + 419)) + )) + ))) ) ((eq (car structure) ?⿶) (setq enc (nth 1 structure)) -- 1.7.10.4