X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Futf-2000%2Fchar-db-util.el;h=ee099aedfee0ac91744ccda6fa81f52f4c80c2f7;hb=71e488ad37d0becd9e9b810d6d85da1263e2544e;hp=9184e46d7573840fe9e667ec117482f1873447a0;hpb=3d69427fefcaf4de650d92ef73c497916c586df4;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/utf-2000/char-db-util.el b/lisp/utf-2000/char-db-util.el index 9184e46..ee099ae 100644 --- a/lisp/utf-2000/char-db-util.el +++ b/lisp/utf-2000/char-db-util.el @@ -1,7 +1,7 @@ ;;; char-db-util.el --- Character Database utility -*- coding: utf-8-er; -*- -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -;; 2007, 2008, 2009, 2010, 2011 MORIOKA Tomohiko. +;; Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2005,2006,2007, +;; 2008,2009,2010,2011,2012,2013,2014,2015 MORIOKA Tomohiko. ;; Author: MORIOKA Tomohiko ;; Keywords: CHISE, Character Database, ISO/IEC 10646, UCS, Unicode, MULE. @@ -79,7 +79,8 @@ ?𠦒 ?冓 ?幺 ?𢆶 ?叀 ?玄 ?予 ?放 ?𠬪 ?𣦼 ; 130 ?歺 ?死 ?冎 ?骨 ?肉 ?筋 ?刀 ?刃 ?㓞 ?丰 ; 140 ?耒 ?𧢲 ?竹 ?箕 ?丌 ?左 ?工 ?㠭 ?巫 ?甘 ; 150 - ?旨 ?曰 ?乃 ?丂 ?可 ?兮 ?号 ?亏 ?喜 ?壴 ; 160 + ?曰 ?乃 ?丂 ?可 ?兮 ?号 ?亏 ?旨 ?喜 ?壴 ; 160 +; ?旨 ?曰 ?乃 ?丂 ?可 ?兮 ?号 ?亏 ?喜 ?壴 ; 160 ?鼓 ?豈 ?豆 ?豊 ?豐 ?䖒 ?虍 ?虎 ?虤 ?皿 ; 170 ?𠙴 ?去 ?血 ?丶 ?丹 ?青 ?井 ?皀 ?鬯 ?食 ; 180 ?亼 ?會 ?倉 ?入 ?缶 ?矢 ?高 ?冂 ?𩫏 ?京 ; 190 @@ -93,6 +94,16 @@ ?𣎳 ?林 ?麻 ?尗 ?耑 ?韭 ?瓜 ?瓠 ?宀 ?宮 ; 270 ?呂 ?穴 ?㝱 ?𤕫 ?冖 ?𠔼 ?冃 ?㒳 ?网 ?襾 ; 280 ?巾 ?巿 ?帛 ?白 ?㡀 ?黹 ?人 ?𠤎 ?匕 ?从 ; 290 + ?比 ?北 ?丘 ?㐺 ?𡈼 ?重 ?臥 ?身 ?㐆 ?衣 ; 300 + ?裘 ?老 ?毛 ?毳 ?尸 ?尺 ?尾 ?履 ?舟 ?方 ; 310 + ?儿 ?兄 ?兂 ?皃 ?𠑹 ?先 ?秃 ?見 ?覞 ?欠 ; 320 + ?㱃 ?㳄 ?旡 ?頁 ?𦣻 ?面 ?丏 ?首 ?𥄉 ?須 ; 330 + ?彡 ?彣 ?文 ?髟 ?后 ?司 ?卮 ?卩 ?印 ?色 ; 340 + ?𠨍 ?辟 ?勹 ?包 ?茍 ?鬼 ?甶 ?厶 ?嵬 ?山 ; 350 + ?屾 ?屵 ?广 ?厂 ?丸 ?危 ?石 ?長 ?勿 ?冄 ; 360 + ?而 ?豕 ?㣇 ?彑 ?豚 ?豸 ?𤉡 ?易 ?象 ?馬 ; 370 + ?𢊁 ?鹿 ?麤 ?㲋 ?兔 ?萈 ?犬 ?㹜 ?鼠 ?能 ; 380 + ?熊 ?火 ?炎 ?黑 ?囪 ?焱 ?炙 ?赤 ?大 ?亦 ; 390 ]) (defun shuowen-radical (number) @@ -114,6 +125,14 @@ cyrillic-iso8859-5 greek-iso8859-7 thai-tis620 + ;; =mj + ;; =adobe-japan1-0 + ;; =adobe-japan1-1 + ;; =adobe-japan1-2 + ;; =adobe-japan1-3 + ;; =adobe-japan1-4 + ;; =adobe-japan1-5 + ;; =adobe-japan1-6 =jis-x0208 =jis-x0208@1978 =jis-x0208@1983 @@ -139,14 +158,6 @@ latin-viscii ethiopic-ucs =big5-cdp - =gt - =adobe-japan1-0 - =adobe-japan1-1 - =adobe-japan1-2 - =adobe-japan1-3 - =adobe-japan1-4 - =adobe-japan1-5 - =adobe-japan1-6 =hanyo-denshi/ja =hanyo-denshi/jb =hanyo-denshi/jc @@ -157,11 +168,33 @@ =hanyo-denshi/hg =hanyo-denshi/jt =hanyo-denshi/ks + ;; ==mj + ;; ==adobe-japan1-0 + ;; ==adobe-japan1-1 + ;; ==adobe-japan1-2 + ;; ==adobe-japan1-3 + ;; ==adobe-japan1-4 + ;; ==adobe-japan1-5 + ;; ==adobe-japan1-6 + ==jis-x0208 + ==jis-x0213-1 + ==jis-x0213-2 + ==hanyo-denshi/ja + ==hanyo-denshi/jb + ==hanyo-denshi/jc + ==hanyo-denshi/ft + ==hanyo-denshi/ib + ==hanyo-denshi/hg + ==hanyo-denshi/jt + ==hanyo-denshi/ks + =gt + =gt-k =daikanwa =daikanwa@rev2 =daikanwa@rev1 + =daikanwa/+p + ==daikanwa =cbeta - =gt-k ideograph-hanziku-1 ideograph-hanziku-2 ideograph-hanziku-3 @@ -174,11 +207,32 @@ ideograph-hanziku-10 ideograph-hanziku-11 ideograph-hanziku-12 - =>>>jis-x0208 - =>>>jis-x0213-1 - =>>>jis-x0213-2 - =>>>gt - =>>>adobe-japan1 + ;; =>>>adobe-japan1-0 + ;; =>>>adobe-japan1-1 + ;; =>>>adobe-japan1-2 + ;; =>>>adobe-japan1-3 + ;; =>>>adobe-japan1-4 + ;; =>>>adobe-japan1-5 + ;; =>>>adobe-japan1-6 + ;; =>>>jis-x0208 + ;; =>>>jis-x0213-1 + ;; =>>>jis-x0213-2 + ;; =>>>hanyo-denshi/ja + ;; =>>>hanyo-denshi/jb + ;; =>>>hanyo-denshi/jc + ;; =>>>hanyo-denshi/ft + ;; =>>>hanyo-denshi/ib + ;; =>>>hanyo-denshi/hg + ;; =>>>hanyo-denshi/jt + ;; =>>>hanyo-denshi/ks + ;; =>>>gt + =>>adobe-japan1-0 + =>>adobe-japan1-1 + =>>adobe-japan1-2 + =>>adobe-japan1-3 + =>>adobe-japan1-4 + =>>adobe-japan1-5 + =>>adobe-japan1-6 =>>jis-x0208 =>>jis-x0213-1 =>>jis-x0213-1@2000 @@ -190,12 +244,18 @@ =>>hanyo-denshi/ks =>>gt =>>daikanwa - =>>adobe-japan1 + =>>cbeta =+>jis-x0208 =+>jis-x0213-1 =+>jis-x0213-2 + =+>adobe-japan1-0 + =+>adobe-japan1-1 + =+>adobe-japan1-2 + =+>adobe-japan1-3 + =+>adobe-japan1-4 + =+>adobe-japan1-5 + =+>adobe-japan1-6 =+>jis-x0208@1978 - =+>adobe-japan1 =>jis-x0208 =>jis-x0208@1997 =>jis-x0213-1 @@ -203,6 +263,8 @@ =>jis-x0213-1@2004 =>jis-x0213-2 ==>ucs@bucs + =>iwds-1 + =>ucs@hanyo-denshi =>ucs@iso =>ucs@unicode =>ucs@jis @@ -220,14 +282,36 @@ =>>ucs@cns =>>>ucs@iso =>>>ucs@unicode + ==ucs@iso + ==ucs@unicode + ;; ==ucs@cns + ==gb2312 + ==ks-x1001 + ==cns11643-1 + ==cns11643-2 + ==cns11643-3 + ==cns11643-4 + ==cns11643-5 + ==cns11643-6 + ==cns11643-7 + ==gt + ==jis-x0208@1990 + ;; ==jis-x0208@1983 + ==jis-x0208@1978 + ==gt-k =ucs@iso =ucs@unicode + =ucs@cns + ==big5-cdp + ==cbeta =>>big5-cdp =>>gt-k =+>gt =>gt =>big5-cdp =>daikanwa + =>daikanwa/ho + =>cns11643-5 =>cns11643-7 =big5 =big5-eten @@ -236,8 +320,13 @@ =>zinbun-oracle =ruimoku-v6 =>>ruimoku-v6 + ==ruimoku-v6 =jef-china3 - =shinjigen)) + =>cbeta + =shinjigen + =big5-cdp-var-3 + =big5-cdp-var-5 + =>ucs@iwds-1)) ;;; @ char-db formatters @@ -256,6 +345,70 @@ (setq char-spec (cons (cons 'name* ret) char-spec)) )) ) + ((encode-char char '=mj 'defined-only) + (setq char-spec nil) + (dolist (ccs (charset-list)) + (if (and (or (eq ccs '=mj) + ;; (eq (charset-property ccs 'iso-ir) 177) + (string-match "=ucs@" (symbol-name ccs)) + ) + (setq ccs (charset-name ccs)) + (null (assq ccs char-spec)) + (setq ret (encode-char char ccs 'defined-only))) + (setq char-spec (cons (cons ccs ret) char-spec)))) + ) + ((encode-char char '==mj 'defined-only) + (setq char-spec nil) + (dolist (ccs (charset-list)) + (if (and (or (eq ccs '==mj) + ;; (eq (charset-property ccs 'iso-ir) 177) + (string-match "=ucs@" (symbol-name ccs)) + ) + (setq ccs (charset-name ccs)) + (null (assq ccs char-spec)) + (setq ret (encode-char char ccs 'defined-only))) + (setq char-spec (cons (cons ccs ret) char-spec)))) + ) + ((encode-char char '=adobe-japan1 'defined-only) + (setq char-spec nil) + (dolist (ccs (charset-list)) + (if (and (or (memq ccs + '(=adobe-japan1-0 + =adobe-japan1-1 + =adobe-japan1-2 + =adobe-japan1-3 + =adobe-japan1-4 + =adobe-japan1-5 + =adobe-japan1-6 + )) + ;; (eq (charset-property ccs 'iso-ir) 177) + (string-match "=ucs@" (symbol-name ccs)) + ) + (setq ccs (charset-name ccs)) + (null (assq ccs char-spec)) + (setq ret (encode-char char ccs 'defined-only))) + (setq char-spec (cons (cons ccs ret) char-spec)))) + ) + ((encode-char char '==adobe-japan1 'defined-only) + (setq char-spec nil) + (dolist (ccs (charset-list)) + (if (and (or (memq ccs + '(==adobe-japan1-0 + ==adobe-japan1-1 + ==adobe-japan1-2 + ==adobe-japan1-3 + ==adobe-japan1-4 + ==adobe-japan1-5 + ==adobe-japan1-6 + )) + ;; (eq (charset-property ccs 'iso-ir) 177) + (string-match "=ucs@" (symbol-name ccs)) + ) + (setq ccs (charset-name ccs)) + (null (assq ccs char-spec)) + (setq ret (encode-char char ccs 'defined-only))) + (setq char-spec (cons (cons ccs ret) char-spec)))) + ) ((setq ret (catch 'tag (let ((rest char-db-coded-charset-priority-list) @@ -277,7 +430,9 @@ ;; =gt-k =jis-x0208@1997 )) - (string-match "=ucs@" (symbol-name ccs))) + (eq (charset-property ccs 'iso-ir) 177) + ;; (string-match "=ucs@" (symbol-name ccs)) + ) (setq ccs (charset-name ccs)) (null (assq ccs char-spec)) (setq ret (encode-char char ccs 'defined-only))) @@ -451,6 +606,8 @@ (setq ret (cond ((eq ccs 'arabic-iso8859-6) (decode-char ccs code-point)) + ;; ((eq ccs '=gt) + ;; (decode-builtin-char '==gt code-point)) ((and (memq ccs '(=gt-pj-1 =gt-pj-2 =gt-pj-3 @@ -467,7 +624,10 @@ (decode-builtin-char '=gt ret)) (t (decode-builtin-char ccs code-point)))) - (cond ((and (<= 0 (char-int ret)) + (cond ((null ret) + (or (decode-char ccs code-point) + (define-char (list (cons ccs code-point))))) + ((and (<= 0 (char-int ret)) (<= (char-int ret) #x1F)) (decode-char '=ucs (+ #x2400 (char-int ret)))) ((= (char-int ret) #x7F) @@ -482,32 +642,68 @@ (insert (format (cond - ((memq name '(=shinjigen - =shinjigen@1ed - =shinjigen@rev =shinjigen/+p@rev - =daikanwa/ho)) + ((memq name '(=>iwds-1 + ==shinjigen + =shinjigen + =shinjigen@1ed ==shinjigen@1ed + =shinjigen@rev ==shinjigen@rev + =shinjigen/+p@rev ==shinjigen/+p@rev + ===daikanwa/ho ==daikanwa/ho + =daikanwa/ho =>>daikanwa/ho =>daikanwa/ho)) "(%-18s . %04d)\t; %c") ((eq name '=shinjigen@1ed/24pr) "(%-18s . %04d)\t; %c") - ((or (memq name '(=daikanwa =>>daikanwa =>daikanwa - =daikanwa@rev1 =daikanwa@rev2 - =daikanwa/+p =daikanwa/+2p - =gt =>>>gt =>>gt =+>gt =>gt - =gt-k =>>gt-k =>gt-k - =adobe-japan1-0 =>>>adobe-japan1-0 =>>adobe-japan1-0 - =adobe-japan1-1 =>>>adobe-japan1-1 =>>adobe-japan1-1 - =adobe-japan1-2 =>>>adobe-japan1-2 =>>adobe-japan1-2 - =adobe-japan1-3 =>>>adobe-japan1-3 =>>adobe-japan1-3 - =adobe-japan1-4 =>>>adobe-japan1-4 =>>adobe-japan1-4 - =adobe-japan1-5 =>>>adobe-japan1-5 =>>adobe-japan1-5 - =adobe-japan1-6 =>>>adobe-japan1-6 =>>adobe-japan1-6 - =+>adobe-japan1 - =cbeta =>>cbeta - =zinbun-oracle =>zinbun-oracle)) - ;; (string-match "^=adobe-" (symbol-name name)) - ) + ((or + (memq name + '(===daikanwa + ==daikanwa =daikanwa =>>daikanwa =>daikanwa + =daikanwa@rev1 =daikanwa@rev2 + =daikanwa/+p ==daikanwa/+p ===daikanwa/+p + =>>daikanwa/+p + =daikanwa/+2p =>>daikanwa/+2p + =gt ==gt ===gt + =>>gt =+>gt =>gt + =gt-k ==gt-k ===gt-k + =>>gt-k =>gt-k + =adobe-japan1-0 ==adobe-japan1-0 ===adobe-japan1-0 + =adobe-japan1-1 ==adobe-japan1-1 ===adobe-japan1-1 + =adobe-japan1-2 ==adobe-japan1-2 ===adobe-japan1-2 + =adobe-japan1-3 ==adobe-japan1-3 ===adobe-japan1-3 + =adobe-japan1-4 ==adobe-japan1-4 ===adobe-japan1-4 + =adobe-japan1-5 ==adobe-japan1-5 ===adobe-japan1-5 + =adobe-japan1-6 ==adobe-japan1-6 ===adobe-japan1-6 + =>>adobe-japan1-0 =+>adobe-japan1-0 + =>>adobe-japan1-1 =+>adobe-japan1-1 + =>>adobe-japan1-2 =+>adobe-japan1-2 + =>>adobe-japan1-3 =+>adobe-japan1-3 + =>>adobe-japan1-4 =+>adobe-japan1-4 + =>>adobe-japan1-5 =+>adobe-japan1-5 + =>>adobe-japan1-6 =+>adobe-japan1-6 + =>cbeta =cbeta =>>cbeta ==cbeta ===cbeta + =zinbun-oracle =>zinbun-oracle + ===hng-jou ===hng-keg ===hng-dng ===hng-mam + ===hng-drt ===hng-kgk ===hng-myz ===hng-kda + ===hng-khi ===hng-khm ===hng-hok ===hng-kyd ===hng-sok + ===hng-yhk ===hng-kak ===hng-kar ===hng-kae + ===hng-sys ===hng-tsu ===hng-tzj + ===hng-hos ===hng-nak ===hng-jhk + ===hng-hod ===hng-gok ===hng-ink ===hng-nto + ===hng-nkm ===hng-k24 ===hng-nkk + ===hng-kcc ===hng-kcj ===hng-kbk ===hng-sik + ===hng-skk ===hng-kyu ===hng-ksk ===hng-wan + ===hng-okd ===hng-wad ===hng-kmi + ===hng-zkd ===hng-jyu + ===hng-kss ===hng-kyo + ===hng-smk)) + ;; (string-match "^=adobe-" (symbol-name name)) + ) "(%-18s . %05d)\t; %c") - ((memq name '(=hanyo-denshi/ks =>>hanyo-denshi/ks mojikyo)) + ((memq name '(=hanyo-denshi/ks + ==hanyo-denshi/ks ===hanyo-denshi/ks + =>>hanyo-denshi/ks + =koseki ==koseki + =mj ==mj ===mj =>>mj + =zihai mojikyo)) "(%-18s . %06d)\t; %c") ((>= (charset-dimension name) 2) "(%-18s . #x%04X)\t; %c") @@ -582,7 +778,10 @@ =jis-x0212 =jis-x0208@1983 =jis-x0208@1978 - =shinjigen)))) + =shinjigen + =shinjigen@1ed + =shinjigen@rev + =shinjigen/+p@rev)))) ((eq source 'CN) (setq required-features (union required-features @@ -680,6 +879,12 @@ line-breaking ccss readable) (setq attributes (delq '<-denotational attributes))) + (when (and (memq '<-denotational@component attributes) + (setq value (get-char-attribute char '<-denotational@component))) + (char-db-insert-relation-feature char '<-denotational@component value + line-breaking + ccss readable) + (setq attributes (delq '<-denotational@component attributes))) (when (and (memq 'name attributes) (setq value (get-char-attribute char 'name))) (insert (format @@ -968,17 +1173,17 @@ (setq strokes value))) (setq attributes (delq 'cns-strokes attributes)) ) - (when (and (memq 'shinjigen-1-radical attributes) - (setq value (get-char-attribute char 'shinjigen-1-radical))) - (unless (eq value radical) - (insert (format "(shinjigen-1-radical . %S)\t; %c%s" - value - (ideographic-radical value) - line-breaking)) - (or radical - (setq radical value))) - (setq attributes (delq 'shinjigen-1-radical attributes)) - ) + ;; (when (and (memq 'shinjigen-1-radical attributes) + ;; (setq value (get-char-attribute char 'shinjigen-1-radical))) + ;; (unless (eq value radical) + ;; (insert (format "(shinjigen-1-radical . %S)\t; %c%s" + ;; value + ;; (ideographic-radical value) + ;; line-breaking)) + ;; (or radical + ;; (setq radical value))) + ;; (setq attributes (delq 'shinjigen-1-radical attributes)) + ;; ) (when (and (memq 'ideographic- attributes) (setq value (get-char-attribute char 'ideographic-))) (insert "(ideographic- ")