X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=dump-tables.el;h=dc1e6850209caeefe77671922bfa9e63dfd49cf6;hb=3655ec5a3aa50004fb5092ef89127cfe66d7a677;hp=689812a90f67fce19ae7c44c50b8c3258c42428f;hpb=9eccb5e0ff17275238d39176c215924e107f7fb7;p=chise%2Ftomoyo-tools.git diff --git a/dump-tables.el b/dump-tables.el index 689812a..dc1e685 100644 --- a/dump-tables.el +++ b/dump-tables.el @@ -1,9 +1,9 @@ ;;; dump-tables.el --- Dump utility of mapping tables -;; Copyright (C) 2002 MORIOKA Tomohiko +;; Copyright (C) 2002,2003 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko -;; Keywords: Ideographs, Character Database, UTF-2000, UCS, Unicode +;; Keywords: Ideographs, Character Database, CHISE, UCS, Unicode ;; This file is a part of tomoyo-tools. @@ -26,11 +26,12 @@ (defun dump-94x94-ccs-to-ucs-table (filename default-file-name ccs ccs-prefix - ucs-ccs ucs-ccs-prefix) + ucs-domain ucs-ccs-prefix) (if (file-directory-p filename) (setq filename (expand-file-name default-file-name filename))) (with-temp-buffer - (let ((ucs-ccs-map (intern (format "=>%s" ucs-ccs))) + (let ((ucs-ccs (intern (format "=ucs@%s" ucs-domain))) + (ucs-ccs-map (intern (format "=>ucs@%s" ucs-domain))) (ccs-format (concat ccs-prefix "%02X%02X")) (ucs-ccs-format (concat "\t" ucs-ccs-prefix "%04X\t")) (row 33) @@ -39,9 +40,9 @@ (setq cell 33) (while (< cell 127) (when (and (setq chr (make-char ccs row cell)) - (setq ucs (or (get-char-attribute chr 'ucs) + (setq ucs (or (encode-char chr 'ucs 'defined-only) (get-char-attribute chr '=>ucs)))) - (setq ucs-l (or (get-char-attribute chr ucs-ccs) + (setq ucs-l (or (encode-char chr ucs-ccs 'defined-only) (get-char-attribute chr ucs-ccs-map))) (insert (format ccs-format row cell)) (if (and ucs-l (/= ucs-l ucs)) @@ -60,14 +61,14 @@ (interactive "Fdump J90-to-UCS : ") (dump-94x94-ccs-to-ucs-table filename "J90-to-UCS.txt" - 'japanese-jisx0208-1990 "J90-" 'ucs-jis "JU+")) + 'japanese-jisx0208-1990 "J90-" 'jis "JU+")) ;;;###autoload (defun dump-jis-x0212-to-ucs-table (filename) (interactive "Fdump JSP-to-UCS : ") (dump-94x94-ccs-to-ucs-table filename "JSP-to-UCS.txt" - 'japanese-jisx0212 "JSP-" 'ucs-jis "JU+")) + 'japanese-jisx0212 "JSP-" 'jis "JU+")) ;;;###autoload (defun dump-jis-x0213-1-to-ucs-table (filename) @@ -81,13 +82,13 @@ (setq cell 33) (while (< cell 127) (when (and (setq chr (make-char 'japanese-jisx0213-1 row cell)) - (not (encode-char chr 'japanese-jisx0208-1990 t)) - (setq ucs (or (get-char-attribute chr 'ucs) - (get-char-attribute chr '=>ucs) - (get-char-attribute chr '->ucs)))) + (not (encode-char chr 'japanese-jisx0208-1990 + 'defined-only)) + (setq ucs (or (encode-char chr 'ucs 'defined-only) + (get-char-attribute chr '=>ucs)))) (when (setq ucs-j (or (encode-char chr '=ucs-jis-2000 'defined-only) - (get-char-attribute chr '=>ucs-jis))) + (get-char-attribute chr '=>ucs@jis))) (if (eq ucs-j ucs) (setq ucs-j nil))) (insert (format "JX1-%02X%02X" row cell)) @@ -107,21 +108,21 @@ (interactive "Fdump JX2-to-UCS : ") (dump-94x94-ccs-to-ucs-table filename "JX2-to-UCS.txt" - 'japanese-jisx0213-2 "JX2-" 'ucs-jis "JU+")) + 'japanese-jisx0213-2 "JX2-" 'jis "JU+")) ;;;###autoload (defun dump-cns-11643-3-to-ucs-table (filename) (interactive "Fdump C3-to-UCS : ") (dump-94x94-ccs-to-ucs-table filename "C3-to-UCS.txt" - 'chinese-cns11643-3 "C3-" 'ucs-cns "CU+")) + 'chinese-cns11643-3 "C3-" 'cns "CU+")) ;;;###autoload (defun dump-cns-11643-4-to-ucs-table (filename) (interactive "Fdump C4-to-UCS : ") (dump-94x94-ccs-to-ucs-table filename "C4-to-UCS.txt" - 'chinese-cns11643-4 "C4-" 'ucs-cns "CU+")) + 'chinese-cns11643-4 "C4-" 'cns "CU+")) ;;;###autoload (defun dump-big5-to-ucs-table (filename) @@ -135,11 +136,10 @@ (setq cell #x40) (while (< cell #xFE) (when (and (setq chr (make-char 'chinese-big5 row cell)) - (setq ucs (or (get-char-attribute chr 'ucs) - (get-char-attribute chr '=>ucs) - (get-char-attribute chr '->ucs)))) - (setq ucs-big5 (or (get-char-attribute chr 'ucs-big5) - (get-char-attribute chr '=>ucs-big5))) + (setq ucs (or (encode-char chr 'ucs 'defined-only) + (get-char-attribute chr '=>ucs)))) + (setq ucs-big5 (or (encode-char chr 'ucs-big5 'defined-only) + (get-char-attribute chr '=>ucs@big5))) (insert (format "B-%02X%02X" row cell)) (if ucs-big5 (insert (format "\tBU+%04X\t" ucs-big5)) @@ -164,7 +164,7 @@ (setq cell #xA1) (while (<= cell #xFE) (when (and (setq chr (make-char 'china3-jef row cell)) - (setq ucs (or (get-char-attribute chr 'ucs) + (setq ucs (or (encode-char chr 'ucs 'defined-only) (get-char-attribute chr '=>ucs)))) (insert (format "JC3-%02X%02X\t" row cell)) (insert (format (if (<= ucs #xFFFF) @@ -185,7 +185,7 @@ chr ucs) (while (<= i 20000) (when (and (setq chr (decode-char 'ideograph-cbeta i)) - (setq ucs (or (get-char-attribute chr 'ucs) + (setq ucs (or (encode-char chr 'ucs 'defined-only) (get-char-attribute chr '=>ucs)))) (insert (format "CB%05d\t" i)) (insert (format (if (<= ucs #xFFFF) @@ -195,6 +195,71 @@ (setq i (1+ i)))) (write-region (point-min)(point-max) filename))) +;;;###autoload +(defun dump-jis2ucsdkw (filename) + (interactive "Fdump jis2ucsdkw : ") + (if (file-directory-p filename) + (setq filename (expand-file-name "jis2ucsdkw.txt" filename))) + (with-temp-buffer + (let ((row 33) + cell chr ucs-j md) + (while (< row 127) + (setq cell 33) + (while (< cell 127) + (when (and (setq chr (make-char 'japanese-jisx0213-1 row cell)) + (setq ucs-j + (or (encode-char chr '=ucs@jis-2000 'defined-only) + (get-char-attribute chr '=>ucs@jis-2000) + (get-char-attribute chr '=>ucs@jis) + (get-char-attribute chr '=>ucs))) + (or (and (<= #x3400 ucs-j) (<= ucs-j #x9FA5)) + (and (<= #xF900 ucs-j) (<= ucs-j #xFA6F)) + (<= #x20000 ucs-j))) + (insert (format "J1-%02d%02d" (- row 32)(- cell 32))) + (if ucs-j + (insert (format " U+%05X" ucs-j)) + (insert " ")) + (setq md (char-daikanwa chr)) + (cond ((integerp md) + (insert (format " D%05d.0\n" md))) + ((eq (car md) 'ho) + (insert (format " DHo%03d\n" (nth 1 md)))) + (md + (insert (format " D%05d.%d\n" (car md)(nth 1 md)))) + (t + (insert "\n"))) + ) + (setq cell (1+ cell))) + (setq row (1+ row))) + (setq row 33) + (while (< row 127) + (setq cell 33) + (while (< cell 127) + (when (and (setq chr (make-char 'japanese-jisx0213-2 row cell)) + (setq ucs-j + (or (encode-char chr '=ucs@jis-2000 'defined-only) + (get-char-attribute chr '=>ucs@jis-2000) + (get-char-attribute chr '=>ucs@jis) + (get-char-attribute chr '=>ucs)))) + (insert (format "J2-%02d%02d" (- row 32)(- cell 32))) + (if ucs-j + (insert (format " U+%05X" ucs-j)) + (insert " ")) + (setq md (char-daikanwa chr)) + (cond ((integerp md) + (insert (format " D%05d.0\n" md))) + ((eq (car md) 'ho) + (insert (format " DHo%03d\n" (nth 1 md)))) + (md + (insert (format " D%05d.%d\n" (car md)(nth 1 md)))) + (t + (insert "\n"))) + ) + (setq cell (1+ cell))) + (setq row (1+ row))) + ) + (write-region (point-min)(point-max) filename))) + ;;; @ End. ;;;