Don't omit `<-subsumptive' features of `=ruimoku-v6' characters.
[chise/xemacs-chise.git-] / lisp / utf-2000 / char-db-util.el
index b6b1b14..6e36360 100644 (file)
     =hanyo-denshi/ia
     =hanyo-denshi/ib
     =hanyo-denshi/hg
-    ideograph-daikanwa-2
-    ideograph-daikanwa
+    =daikanwa
+    =daikanwa@rev2
+    =daikanwa@rev1
     =cbeta
     =gt-k
     ideograph-hanziku-1
     =>>hanyo-denshi/ft
     =>>hanyo-denshi/ks
     =>>gt
+    =>>daikanwa
     =>jis-x0208@usual
     =>jis-x0208
     =>jis-x0208@1997
     (insert-char-attributes char
                            readable
                             (union (mapcar #'car char-spec)
-                                  required-features))
+                                  required-features)
+                           nil 'for-sub-node)
     (when temp-char
       ;; undefine temporary character
       ;;   Current implementation is dirty.
                   (insert-char-attributes ret
                                           readable
                                           (or al 'none) ; cal
-                                          ))
+                                          nil 'for-sub-node))
               (insert (prin1-to-string value)))
             (insert ")")
             (insert line-breaking))
                     (insert-char-attributes ret
                                             readable
                                             al ; cal
-                                            )
+                                            nil 'for-sub-node)
                     (setq separator lbs))
                 (if separator
                     (insert separator))
           "(%-18s .  %04d)\t; %c")
          ((eq name '=shinjigen@1ed/24pr)
           "(%-18s . %04d)\t; %c")
-         ((or (memq name '(=daikanwa
+         ((or (memq name '(=daikanwa =>>daikanwa =>daikanwa
                            =daikanwa@rev1 =daikanwa@rev2
                            =daikanwa/+p =daikanwa/+2p
-                           =>>daikanwa =>daikanwa
-                           =gt =>>gt =>gt =gt-k =>>gt-k =>gt-k =cbeta
-                           =zinbun-oracle =>zinbun-oracle))
+                           =gt =>>>gt =>>gt =>gt
+                           =gt-k =>>gt-k =>gt-k
+                           =>>adobe-japan1
+                           =cbeta =zinbun-oracle =>zinbun-oracle))
               (string-match "^=adobe-" (symbol-name name)))
           "(%-18s . %05d)\t; %c")
          ((memq name '(=hanyo-denshi/ks =>>hanyo-denshi/ks mojikyo))
          (let ((char-db-ignored-attributes
                 (cons '<-subsumptive
                       char-db-ignored-attributes)))
-           (insert-char-attributes cell readable))
+           (insert-char-attributes cell readable nil nil 'for-sub-node))
          (setq separator lbs))
        )
        ((characterp cell)
     (insert ")")
     (insert line-breaking)))
 
-(defun insert-char-attributes (char &optional readable attributes column)
+(defun insert-char-attributes (char &optional readable attributes column
+                                   for-sub-node)
   (unless column
     (setq column (current-column)))
   (let (name value ; has-long-ccs-name
                  #'char-attribute-name<)))
     (insert "(")
     (when (memq '<-subsumptive attributes)
-      (when readable
+      (when (or readable (not for-sub-node))
        (when (setq value (get-char-attribute char '<-subsumptive))
          (char-db-insert-relation-feature char '<-subsumptive value
                                           line-breaking
                     (eq name 'ideographic-combination)
                     (eq name 'ideographic-)
                     (eq name '=decomposition)
-                    (string-match "^=>*decomposition\\(@[^*]+\\)?$"
-                                  (symbol-name name))
+                    (char-feature-base-name= '=decomposition name)
+                     (char-feature-base-name= '=>decomposition name)
+                     ;; (string-match "^=>*decomposition\\(@[^*]+\\)?$"
+                     ;;               (symbol-name name))
                     (string-match "^\\(->\\|<-\\)[^*]*$" (symbol-name name))
                     (string-match "^\\(->\\|<-\\)[^*]*\\*sources$"
                                   (symbol-name name))
                             (insert lbs))
                         (insert-char-attributes ret
                                                 readable
-                                                al cal)
+                                                al ; cal
+                                                nil 'for-sub-node)
                         (setq separator lbs))
                     (setq ret (prin1-to-string cell))
                     (if separator