-(defun dump-jis-x0208-1990-to-ucs-table (filename)
- (interactive "Fdump J90-to-UCS : ")
+;;; dump-tables.el --- Dump utility of mapping tables
+
+;; Copyright (C) 2002,2003 MORIOKA Tomohiko
+
+;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
+;; Keywords: Ideographs, Character Database, CHISE, UCS, Unicode
+
+;; This file is a part of tomoyo-tools.
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Code:
+
+(defun dump-94x94-ccs-to-ucs-table (filename default-file-name
+ ccs ccs-prefix
+ ucs-domain ucs-ccs-prefix)
(if (file-directory-p filename)
- (setq filename (expand-file-name "J90-to-UCS.txt" filename)))
+ (setq filename (expand-file-name default-file-name filename)))
(with-temp-buffer
- (let ((row 33)
- cell chr ucs ucs-j)
+ (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)
+ cell chr ucs ucs-l)
(while (< row 127)
(setq cell 33)
(while (< cell 127)
- (when (and (setq chr (make-char 'japanese-jisx0208-1990 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-j (or (get-char-attribute chr 'ucs-jis)
- (get-char-attribute chr '=>ucs-jis)))
- (insert (format "J90-%02X%02X" row cell))
- (if ucs-j
- (insert (format "\tJU+%04X\t" ucs-j))
+ (when (and (setq chr (make-char ccs row cell))
+ (setq ucs (or (encode-char chr 'ucs 'defined-only)
+ (get-char-attribute chr '=>ucs))))
+ (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))
+ (insert (format ucs-ccs-format ucs-l))
(insert "\t "))
(insert (format (if (<= ucs #xFFFF)
"U+%04X\n"
(setq row (1+ row))))
(write-region (point-min)(point-max) filename)))
+;;;###autoload
+(defun dump-jis-x0208-1990-to-ucs-table (filename)
+ (interactive "Fdump J90-to-UCS : ")
+ (dump-94x94-ccs-to-ucs-table
+ filename "J90-to-UCS.txt"
+ 'japanese-jisx0208-1990 "J90-" 'jis "JU+"))
+
+;;;###autoload
(defun dump-jis-x0212-to-ucs-table (filename)
(interactive "Fdump JSP-to-UCS : ")
- (if (file-directory-p filename)
- (setq filename (expand-file-name "JSP-to-UCS.txt" filename)))
- (with-temp-buffer
- (let ((row 33)
- cell chr ucs ucs-j)
- (while (< row 127)
- (setq cell 33)
- (while (< cell 127)
- (when (and (setq chr (make-char 'japanese-jisx0212 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-j (or (get-char-attribute chr 'ucs-jis)
- (get-char-attribute chr '=>ucs-jis)))
- (insert (format "JSP-%02X%02X" row cell))
- (if ucs-j
- (insert (format "\tJU+%04X\t" ucs-j))
- (insert "\t "))
- (insert (format (if (<= ucs #xFFFF)
- "U+%04X\n"
- "U-%08X\n")
- ucs)))
- (setq cell (1+ cell)))
- (setq row (1+ row))))
- (write-region (point-min)(point-max) filename)))
+ (dump-94x94-ccs-to-ucs-table
+ filename "JSP-to-UCS.txt"
+ 'japanese-jisx0212 "JSP-" 'jis "JU+"))
+;;;###autoload
(defun dump-jis-x0213-1-to-ucs-table (filename)
(interactive "Fdump JX1-to-UCS : ")
(if (file-directory-p filename)
(setq cell 33)
(while (< cell 127)
(when (and (setq chr (make-char 'japanese-jisx0213-1 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-j (or (get-char-attribute chr 'ucs-jis)
- (get-char-attribute chr '=>ucs-jis)))
+ (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)))
+ (if (eq ucs-j ucs)
+ (setq ucs-j nil)))
(insert (format "JX1-%02X%02X" row cell))
(if ucs-j
(insert (format "\tJU+%04X\t" ucs-j))
(setq row (1+ row))))
(write-region (point-min)(point-max) filename)))
+;;;###autoload
(defun dump-jis-x0213-2-to-ucs-table (filename)
(interactive "Fdump JX2-to-UCS : ")
- (if (file-directory-p filename)
- (setq filename (expand-file-name "JX2-to-UCS.txt" filename)))
- (with-temp-buffer
- (let ((row 33)
- cell chr ucs ucs-j)
- (while (< row 127)
- (setq cell 33)
- (while (< cell 127)
- (when (and (setq chr (make-char 'japanese-jisx0213-2 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-j (or (get-char-attribute chr 'ucs-jis)
- (get-char-attribute chr '=>ucs-jis)))
- (insert (format "JX2-%02X%02X" row cell))
- (if ucs-j
- (insert (format "\tJU+%04X\t" ucs-j))
- (insert "\t "))
- (insert (format (if (<= ucs #xFFFF)
- "U+%04X\n"
- "U-%08X\n")
- ucs)))
- (setq cell (1+ cell)))
- (setq row (1+ row))))
- (write-region (point-min)(point-max) filename)))
+ (dump-94x94-ccs-to-ucs-table
+ filename "JX2-to-UCS.txt"
+ 'japanese-jisx0213-2 "JX2-" 'jis "JU+"))
+;;;###autoload
(defun dump-cns-11643-3-to-ucs-table (filename)
(interactive "Fdump C3-to-UCS : ")
- (if (file-directory-p filename)
- (setq filename (expand-file-name "C3-to-UCS.txt" filename)))
- (with-temp-buffer
- (let ((row 33)
- cell chr ucs ucs-cns)
- (while (< row 127)
- (setq cell 33)
- (while (< cell 127)
- (when (and (setq chr (make-char 'chinese-cns11643-3 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-cns (or (get-char-attribute chr 'ucs-cns)
- (get-char-attribute chr '=>ucs-cns)))
- (insert (format "C3-%02X%02X" row cell))
- (if ucs-cns
- (insert (format "\tCU+%04X\t" ucs-cns))
- (insert "\t "))
- (insert (format (if (<= ucs #xFFFF)
- "U+%04X\n"
- "U-%08X\n")
- ucs)))
- (setq cell (1+ cell)))
- (setq row (1+ row))))
- (write-region (point-min)(point-max) filename)))
+ (dump-94x94-ccs-to-ucs-table
+ filename "C3-to-UCS.txt"
+ 'chinese-cns11643-3 "C3-" 'cns "CU+"))
+;;;###autoload
(defun dump-cns-11643-4-to-ucs-table (filename)
(interactive "Fdump C4-to-UCS : ")
- (if (file-directory-p filename)
- (setq filename (expand-file-name "C4-to-UCS.txt" filename)))
- (with-temp-buffer
- (let ((row 33)
- cell chr ucs ucs-cns)
- (while (< row 127)
- (setq cell 33)
- (while (< cell 127)
- (when (and (setq chr (make-char 'chinese-cns11643-4 row cell))
- (setq ucs (or (get-char-attribute chr 'ucs)
- (get-char-attribute chr '=>ucs)
- (get-char-attribute chr '->ucs))))
- (setq ucs-cns (or (get-char-attribute chr 'ucs-cns)
- (get-char-attribute chr '=>ucs-cns)))
- (insert (format "C4-%02X%02X" row cell))
- (if ucs-cns
- (insert (format "\tCU+%04X\t" ucs-cns))
- (insert "\t "))
- (insert (format (if (<= ucs #xFFFF)
- "U+%04X\n"
- "U-%08X\n")
- ucs)))
- (setq cell (1+ cell)))
- (setq row (1+ row))))
- (write-region (point-min)(point-max) filename)))
+ (dump-94x94-ccs-to-ucs-table
+ filename "C4-to-UCS.txt"
+ 'chinese-cns11643-4 "C4-" 'cns "CU+"))
+;;;###autoload
(defun dump-big5-to-ucs-table (filename)
(interactive "Fdump B-to-UCS : ")
(if (file-directory-p filename)
(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))
(setq row (1+ row))))
(write-region (point-min)(point-max) filename)))
+;;;###autoload
(defun dump-jef-china3-to-ucs-table (filename)
(interactive "Fdump JC3-to-UCS : ")
(if (file-directory-p filename)
cell chr ucs)
(while (<= row #x9F)
(setq cell #xA1)
- (while (< cell #xFE)
+ (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)
(setq cell (1+ cell)))
(setq row (1+ row))))
(write-region (point-min)(point-max) filename)))
+
+;;;###autoload
+(defun dump-cbeta-to-ucs-table (filename)
+ (interactive "Fdump CBETA-to-UCS : ")
+ (if (file-directory-p filename)
+ (setq filename (expand-file-name "CBETA-to-UCS.txt" filename)))
+ (with-temp-buffer
+ (let ((i 1)
+ chr ucs)
+ (while (<= i 20000)
+ (when (and (setq chr (decode-char 'ideograph-cbeta i))
+ (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)
+ "U+%04X\n"
+ "U-%08X\n")
+ ucs)))
+ (setq i (1+ i))))
+ (write-region (point-min)(point-max) filename)))
+
+
+;;; @ End.
+;;;
+
+(provide 'dump-tables)
+
+;;; dump-tables.el ends here