(insert-char-data-with-variant): Don't insert characters which have
authortomo <tomo>
Tue, 9 Nov 2004 18:21:44 +0000 (18:21 +0000)
committertomo <tomo>
Tue, 9 Nov 2004 18:21:44 +0000 (18:21 +0000)
`<-subsumptive' feature.

lisp/utf-2000/char-db-util.el

index 73a4f5a..0fca883 100644 (file)
                      (let ((ucs (get-char-attribute char '->ucs)))
                        (if ucs
                            (delete char (char-variants (int-char ucs)))))))
-       variant vs)
+       variant vs ret)
     (setq variants (sort variants #'<))
     (while variants
       (setq variant (car variants))
               (or (null excluded-script)
                   (null (setq vs (get-char-attribute variant 'script)))
                   (not (memq excluded-script vs))))
-         (or (and no-ucs-unified (get-char-attribute variant '=ucs))
-             (insert-char-data variant printable)))
+         (unless (and no-ucs-unified (get-char-attribute variant '=ucs))
+           (insert-char-data variant printable)
+           (if (setq ret (char-variants variant))
+               (while ret
+                 (or (memq (car ret) variants)
+                     (get-char-attribute (car ret) '<-subsumptive)
+                     (setq variants (append variants (list (car ret)))))
+                 (setq ret (cdr ret))))
+           ))
       (setq variants (cdr variants))
       )))