update.
[chise/xemacs-chise.git] / lisp / utf-2000 / char-db-util.el
index 1027c20..def4915 100644 (file)
   (let (char-spec ret al cal key)
     (cond ((characterp char)
           (cond ((setq ret (get-char-attribute char 'ucs))
-                 (setq char-spec (list (cons 'ucs ret)))
+                 (unless (and (<= #xE000 ret)(<= ret #xF8FF))
+                   (setq char-spec (list (cons 'ucs ret))))
+                 (if (setq ret (get-char-attribute char 'chinese-big5-cdp))
+                     (setq char-spec (cons (cons 'chinese-big5-cdp ret)
+                                           char-spec)))
                  (if (setq ret (get-char-attribute char 'name))
                      (setq char-spec (cons (cons 'name ret) char-spec)))
                  )
           (setq char nil)))
     (if (or char
            (setq char (condition-case nil
-                          (define-char char-spec)
+                          (find-char char-spec)
                         (error nil))))
        (progn
          (setq al nil
       (cond ((eq name 'char)
             (insert "(char . ")
             (if (setq ret (condition-case nil
-                              (define-char value)
+                              (find-char value)
                             (error nil)))
                 (progn
                   (setq al nil
               (if (and (consp cell)
                        (consp (car cell))
                        (setq ret (condition-case nil
-                                     (define-char cell)
+                                     (find-char cell)
                                    (error nil)))
                        )
                   (progn
       (setq value (pop plist))
       (cond ((eq name :char)
             (insert ":char\t")
+            (if (numberp value)
+                (setq value (decode-char 'ucs value)))
             (char-db-insert-char-spec value readable)
              (insert line-breaking))
             (t
     (when (and (memq 'name attributes)
               (setq value (get-char-attribute char 'name)))
       (insert (format
-              (if (> (length value) 47)
+              (if (> (+ (current-column) (length value)) 48)
                   "(name . %S)%s"
                 "(name               . %S)%s")
               value line-breaking))
                              ->ancient-ideograph <-ancient-ideograph
                              ->original-ideograph <-original-ideograph
                              ->simplified-ideograph <-simplified-ideograph
+                             ->wrong-ideograph <-wrong-ideograph
                              ->same-ideograph
+                             ->ideographic-variants
+                             ->synonyms
+                             ->radical <-radical
+                             ->bopomofo <-bopomofo
                              ->ideographic <-ideographic
-                             ->bopomofo ->ideograph))
+                             ideographic-structure))
                 (insert (format "(%-18s%s " name line-breaking))
                 (setq lbs (concat "\n" (make-string (current-column) ?\ ))
                       separator nil)
                   (if (and (consp cell)
                            (consp (car cell))
                            (setq ret (condition-case nil
-                                         (define-char cell)
+                                         (find-char cell)
                                        (error nil))))
                       (progn
                         (setq rest cell