(U+64B9): Add J78-5978 and J{83|90}-3349.
[chise/xemacs-chise.git-] / lisp / utf-2000 / ideograph-util.el
index dea2031..b051ead 100644 (file)
   (let ((i #x3400)
        j
        char radical
-       (charsets '(japanese-jisx0208
-                   japanese-jisx0208-1978
+       (charsets '(japanese-jisx0208-1978
+                   japanese-jisx0208
+                   japanese-jisx0208-1990
                    japanese-jisx0212
+                   japanese-jisx0213-1
+                   japanese-jisx0213-2
                    chinese-cns11643-1
                    chinese-cns11643-2
                    chinese-cns11643-3
            (aset ideograph-radical-chars-vector radical
                  (cons char ret))))
       (setq i (1+ i)))
+    (setq i #x100000)
+    (while (<= i #x10FFFF)
+      (setq char (int-char i))
+      (when (setq radical (char-ideograph-radical char))
+       (if (not (memq char
+                      (setq ret
+                            (aref ideograph-radical-chars-vector radical))))
+           (aset ideograph-radical-chars-vector radical
+                 (cons char ret))))
+      (setq i (1+ i)))
     (setq i 0)
     (while (< i 256)
       (setq j 0)
          (cond ((eq (car (cdr ra))(car (cdr rb)))
                 (cond ((< (length ra)(length rb)))
                       ((= (length ra)(length rb))
-                       (cond ((setq ra (get-char-attribute a 'ucs))
-                              (cond
-                               ((setq rb (get-char-attribute b 'ucs))
-                                (< ra rb))
-                               (t))))))
+                       (cond ((integerp (nth 2 ra))
+                              (cond ((integerp (nth 2 rb))
+                                     (< (nth 2 ra)(nth 2 rb)))
+                                    (t nil)))
+                             (t
+                              (cond ((setq ra (get-char-attribute a 'ucs))
+                                     (cond
+                                      ((setq rb (get-char-attribute b 'ucs))
+                                       (< ra rb))
+                                      (t))))))))
                 )
                ((null (car (cdr ra))))
                ((null (car (cdr rb)))
                 nil)
                (t (< (car (cdr ra))(car (cdr rb))))))
         (t (< (car ra)(car rb)))))
-       ((setq ra (get-char-attribute a 'ucs))
-       (cond
-        ((setq rb (get-char-attribute b 'ucs))
-         (< ra rb))))
-       (t
-       (cond
-        ((setq ra (char-ideograph-strokes a))
-         (cond ((setq rb (char-ideograph-strokes b))
-                (cond ((= ra rb)
-                       (not (char-ideograph-strokes b)))
-                      ((< ra rb))))))
-        )))))))
+       (t)))
+     ((or (get-char-attribute b 'morohashi-daikanwa)
+         (get-char-attribute b 'non-morohashi))
+      nil)
+     ((setq ra (get-char-attribute a 'ucs))
+      (cond
+       ((setq rb (get-char-attribute b 'ucs))
+       (< ra rb))))
+     (t
+      (cond
+       ((setq ra (char-ideograph-strokes a))
+       (cond ((setq rb (char-ideograph-strokes b))
+              (cond ((= ra rb)
+                     (not (char-ideograph-strokes b)))
+                    ((< ra rb))))))
+       )))))
 
 (defun insert-ideograph-radical-char-data (radical)
   (let ((chars
       (let ((name (get-char-attribute (int-char (+ #x2EFF radical)) 'name)))
        (if (string-match "KANGXI RADICAL " name)
            (setq name (capitalize (substring name (match-end 0)))))
+       (setq name (mapconcat (lambda (char)
+                               (if (eq char ? )
+                                   "-"
+                                 (char-to-string char))) name ""))
        (setq file
              (expand-file-name
               (format "Ideograph-R%03d-%s.el" radical name)
               file))))
   (with-temp-buffer
     (insert-ideograph-radical-char-data radical)
-    (write-region (point-min)(point-max) file)))
+    (char-db-update-comment)
+    (let ((coding-system-for-write 'utf-8))
+      (write-region (point-min)(point-max) file)
+      )))
 
 (provide 'ideograph-util)