Reformatted.
[chise/xemacs-chise.git.1] / lisp / utf-2000 / read-maps.el
index ddde049..d9974c3 100644 (file)
@@ -1,6 +1,6 @@
 ;;; read-maps.el --- Read mapping-tables.
 
-;; Copyright (C) 2002,2003 MORIOKA Tomohiko
+;; Copyright (C) 2002,2003,2004 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
 ;; Keywords: mapping table, character, CCS, multiscript, multilingual
            (put-char-attribute chr ccs code))
          (when (and ucs-code
                     (not (eq (or (encode-char chr ucs-ccs 'defined-only)
-                                 (get-char-attribute chr '=>ucs))
+                                 (char-feature chr '=>ucs))
                              ucs-code)))
            (put-char-attribute chr ucs-ccs ucs-code))
          (when (and ucs
                     (not (eq (or (encode-char chr '=ucs 'defined-only)
                                  (and (not (memq ucs-ccs '(ucs-jis
                                                            =ucs-jis-1990
-                                                            ;; ucs-big5
+                                                            =ucs-jis-2000
+                                                           ;; ucs-big5
                                                            )))
-                                      (get-char-attribute chr '=>ucs)))
+                                      (char-feature chr '=>ucs)))
                              ucs)))
            (if (or ucs-code (null ucs-ccs))
-               (put-char-attribute chr '=>ucs ucs)
+               (unless (eq (char-feature chr '=>ucs) ucs)
+                 (put-char-attribute chr '=>ucs ucs))
              (unless (eq (encode-char chr ucs-ccs 'defined-only)
                          ucs)
                (put-char-attribute chr ucs-ccs ucs)))))
        (forward-line)))))
 
+(defun jp-jouyou-read-file (filename)
+  (interactive "fjp-jouyou file : ")
+  (with-temp-buffer
+    (buffer-disable-undo)
+    (insert-file-contents filename)
+    (goto-char (point-min))
+    (let (char tchars)
+      (while (re-search-forward "^[^\t\n ]+\t\\(.\\)\t*" nil t)
+       (setq char (aref (match-string 1) 0)
+             tchars (buffer-substring (match-end 0)
+                                      (point-at-eol)))
+       (when (> (length tchars) 0)
+         (setq tchars
+               (mapcar (lambda (c)
+                         (aref c 0))
+                       (split-string tchars " ")))
+         (unless (or (equal (char-feature char '<-simplified@JP/Jouyou)
+                            tchars)
+                     (and (equal (char-feature char '<-simplified)
+                                 tchars)
+                          (memq 'JP/Jouyou
+                                (char-feature char '<-simplified*sources))))
+           (put-char-attribute char
+                               '<-simplified@JP/Jouyou
+                               tchars)))
+        ;; (put-char-attribute
+        ;;  char 'script (adjoin
+        ;;                'JP
+        ;;                (adjoin
+        ;;                 'Jouyou
+        ;;                 (adjoin
+        ;;                  'Ideograph
+        ;;                  (get-char-attribute char 'script)))))
+       ))))
 
 (provide 'read-maps)