- (lambda (char radical)
- (when (and radical
- (or (null (setq script (get-char-attribute char 'script)))
- (memq 'Ideograph script)))
- (unless (memq char
- (setq ret
- (aref ideograph-radical-chars-vector radical)))
- (char-ideographic-strokes char)
- (aset ideograph-radical-chars-vector radical
- (cons char ret))))
+ (lambda (chr radical)
+ (dolist (char (append
+ (if (setq ret
+ (get-char-attribute chr '<-subsumptive))
+ (progn
+ (setq dest nil)
+ (dolist (pc ret)
+ (unless (get-char-attribute
+ pc 'ideographic-radical)
+ (setq dest (cons pc dest))))
+ dest)
+ (list chr))
+ (get-char-attribute chr '<-identical)
+ (get-char-attribute chr '->denotational)))
+ (when (and radical
+ (or (eq radical
+ (char-ideographic-radical char radical))
+ (null (char-ideographic-radical char)))
+ (or (null (setq script
+ (get-char-attribute char 'script)))
+ (memq 'Ideograph script)))
+ (unless (memq char
+ (setq ret
+ (aref ideograph-radical-chars-vector
+ radical)))
+ (char-ideographic-strokes char)
+ (aset ideograph-radical-chars-vector radical
+ (cons char ret)))))