- (ideographic-structure-compact
- (let (enc enc-str enc2-str new-str)
- (cond
- ((eq (car structure) ?⿸)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿰)
- (list ?⿰ (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 enc-str)
- (nth 2 structure))))
- )
- ((and (eq (car enc-str) ?⿲)
- (memq (char-ucs (nth 1 enc-str)) '(#x4EBB #x2E85))
- (eq (nth 2 enc-str) ?丨))
- (list ?⿰
- (decode-char '=big5-cdp #x8B7A)
- (list (list 'ideographic-structure
- ?⿱
- (nth 3 enc-str)
- (nth 2 structure))))
- )
- ((eq (car enc-str) ?⿱)
- (list ?⿱ (nth 1 enc-str)
- (list
- (cons 'ideographic-structure
- (or (functional-ideographic-structure-to-apparent-structure
- (setq new-str
- (list
- (cond
- ((characterp (nth 2 enc-str))
- (if (or (eq (encode-char
- (nth 2 enc-str)
- '=>ucs@component)
- #x20087)
- (eq (encode-char
- (nth 2 enc-str)
- '=>ucs@component)
- #x5382)
- (eq (encode-char
- (nth 2 enc-str)
- '=>ucs@component)
- #x4E06)
- (eq (encode-char
- (nth 2 enc-str)
- '=big5-cdp)
- #x89CE)
- (eq (encode-char
- (nth 2 enc-str)
- '=>big5-cdp)
- #x88E2)
- (eq (encode-char
- (nth 2 enc-str)
- '=big5-cdp)
- #x88AD)
- (eq (or (encode-char
- (nth 2 enc-str)
- '=>big5-cdp)
- (encode-char
- (nth 2 enc-str)
- '=big5-cdp-itaiji-001))
- #x8766)
- (eq (car
- (get-char-attribute
- (nth 2 enc-str)
- 'ideographic-structure))
- ?⿸))
- ?⿸
- ?⿰))
- ((eq (car
- (cdr
- (assq 'ideographic-structure
- (nth 2 enc-str))))
- ?⿸)
- ?⿸)
- (t
- ?⿰))
- (nth 2 enc-str)
- (nth 2 structure)
- )))
- new-str))))
- )
- ((eq (car enc-str) ?⿸)
- (list ?⿸ (nth 1 enc-str)
- (list
- (cons 'ideographic-structure
- (setq new-str
- (list
- (cond
- ((characterp (nth 2 enc-str))
- (if (memq (char-ucs (nth 2 enc-str))
- '(#x5F73))
- ?⿰
- ?⿱)
- )
- (t
- ?⿱))
- (nth 2 enc-str)
- (nth 2 structure))))))
- )))
- )
- ((eq (car structure) ?⿹)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿰)
- (list ?⿰
- (list (list 'ideographic-structure
- ?⿱
- (nth 1 enc-str)
- (nth 2 structure)))
- (nth 2 enc-str))
- )))
- )
- ((eq (get-char-attribute (car structure) '=ucs-itaiji-001) #x2FF6)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿺)
- (list ?⿺
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 structure)
- (nth 1 enc-str)))
- (nth 2 enc-str))
- )
- ((eq (car enc-str) ?⿱)
- (list ?⿱
- (list (list 'ideographic-structure
- ?⿰
- (nth 2 structure)
- (nth 1 enc-str)))
- (nth 2 enc-str))
- ))
- )
- )
- ((eq (car structure) ?⿴)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿱)
- (cond
- ((and (characterp (nth 2 enc-str))
- (or (memq (char-ucs (nth 2 enc-str)) '(#x56D7 #x5F51 #x897F))
- (eq (char-feature (nth 2 enc-str) '=>big5-cdp)
- #x87A5)))
- (list ?⿱
- (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿴
- (nth 2 enc-str)
- (nth 2 structure)))
- )
- )
- ((and (characterp (nth 2 enc-str))
- (eq (char-ucs (nth 2 enc-str)) #x51F5))
- (list ?⿱
- (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿶
- (nth 2 enc-str)
- (nth 2 structure)))
- )
- )
- ((and (characterp (nth 1 enc-str))
- (eq (char-feature (nth 1 enc-str) '=>ucs@component)
- #x300E6))
- (list ?⿱
- (list (list 'ideographic-structure
- ?⿵
- (nth 1 enc-str)
- (nth 2 structure)))
- (nth 2 enc-str))
- )
- (t
- (list ?⿳
- (nth 1 enc-str)
- (nth 2 structure)
- (nth 2 enc-str))
- ))
- ))
- )
- )
- ((eq (car structure) ?⿶)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿱)
- (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿱
- (list (list 'ideographic-structure
- ?⿲
- (nth 1 enc2-str)
- (nth 2 structure)
- (nth 2 enc2-str)))
- (nth 2 enc-str)))
- )
- ((eq (car enc-str) ?⿳)
- (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿳
- (list (list 'ideographic-structure
- ?⿲
- (nth 1 enc2-str)
- (nth 2 structure)
- (nth 2 enc2-str)))
- (nth 2 enc-str)
- (nth 3 enc-str)))
- )
- ((eq (car enc-str) ?⿲)
- (list ?⿲
- (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 structure)
- (nth 2 enc-str)))
- (nth 3 enc-str))
- )
- ((eq (car enc-str) ?⿴)
- (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿲
- (nth 1 enc2-str)
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 structure)
- (nth 2 enc-str)))
- (nth 2 enc2-str)))
- )))
- )
- ((eq (car structure) ?⿵)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿱)
- (setq enc2-str (ideographic-character-get-structure (nth 2 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿱
- (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿲
- (nth 1 enc2-str)
- (nth 2 structure)
- (nth 2 enc2-str)))))
- )
- ((eq (car enc-str) ?⿳)
- (setq enc2-str (ideographic-character-get-structure (nth 3 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿳
- (nth 1 enc-str)
- (nth 2 enc-str)
- (list (list 'ideographic-structure
- ?⿲
- (nth 1 enc2-str)
- (nth 2 structure)
- (nth 2 enc2-str)))))
- )
- ((eq (car enc-str) ?⿲)
- (list ?⿲
- (nth 1 enc-str)
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 enc-str)
- (nth 2 structure)))
- (nth 3 enc-str))
- )
- ((eq (car enc-str) ?⿴)
- (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
- (when (and enc2-str
- (eq (car enc2-str) ?⿰))
- (list ?⿲
- (nth 1 enc2-str)
- (list (list 'ideographic-structure
- ?⿱
- (nth 2 enc-str)
- (nth 2 structure)))
- (nth 2 enc2-str)))
- )))
- )
- ((eq (car structure) ?⿻)
- (setq enc (nth 1 structure))
- (when (setq enc-str
- (cond ((characterp enc)
- (get-char-attribute enc 'ideographic-structure)
- )
- ((consp enc)
- (cdr (assq 'ideographic-structure enc))
- )))
- (cond
- ((eq (car enc-str) ?⿱)
- (list ?⿳
- (nth 1 enc-str)
- (nth 2 structure)
- (nth 2 enc-str))
- )))
- ))
- )))
+ (ideographic-structure-compare-functional-and-apparent
+ structure nil 'conversion-only)
+ ;; (ideographic-structure-compact
+ ;; (let (enc enc-str enc2-str new-str)
+ ;; (cond
+ ;; ((eq (car structure) ?⿸)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿰)
+ ;; (list ?⿰ (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure))))
+ ;; )
+ ;; ((and (eq (car enc-str) ?⿲)
+ ;; (memq (char-ucs (nth 1 enc-str)) '(#x4EBB #x2E85))
+ ;; (eq (nth 2 enc-str) ?丨))
+ ;; (list ?⿰
+ ;; (decode-char '=big5-cdp #x8B7A)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 3 enc-str)
+ ;; (nth 2 structure))))
+ ;; )
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (list ?⿱ (nth 1 enc-str)
+ ;; (list
+ ;; (cons 'ideographic-structure
+ ;; (or (functional-ideographic-structure-to-apparent-structure
+ ;; (setq new-str
+ ;; (list
+ ;; (cond
+ ;; ((characterp (nth 2 enc-str))
+ ;; (if (or (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=>ucs@component)
+ ;; #x20087)
+ ;; (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=>ucs@component)
+ ;; #x5382)
+ ;; (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=>ucs@component)
+ ;; #x4E06)
+ ;; (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=big5-cdp)
+ ;; #x89CE)
+ ;; (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=>big5-cdp)
+ ;; #x88E2)
+ ;; (eq (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=big5-cdp)
+ ;; #x88AD)
+ ;; (eq (or (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=>big5-cdp)
+ ;; (encode-char
+ ;; (nth 2 enc-str)
+ ;; '=big5-cdp-itaiji-001))
+ ;; #x8766)
+ ;; (eq (car
+ ;; (get-char-attribute
+ ;; (nth 2 enc-str)
+ ;; 'ideographic-structure))
+ ;; ?⿸))
+ ;; ?⿸
+ ;; ?⿰))
+ ;; ((eq (car
+ ;; (cdr
+ ;; (assq 'ideographic-structure
+ ;; (nth 2 enc-str))))
+ ;; ?⿸)
+ ;; ?⿸)
+ ;; (t
+ ;; ?⿰))
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure)
+ ;; )))
+ ;; new-str))))
+ ;; )
+ ;; ((eq (car enc-str) ?⿸)
+ ;; (list ?⿸ (nth 1 enc-str)
+ ;; (list
+ ;; (cons 'ideographic-structure
+ ;; (setq new-str
+ ;; (list
+ ;; (cond
+ ;; ((characterp (nth 2 enc-str))
+ ;; (if (memq (char-ucs (nth 2 enc-str))
+ ;; '(#x5F73))
+ ;; ?⿰
+ ;; ?⿱)
+ ;; )
+ ;; (t
+ ;; ?⿱))
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure))))))
+ ;; )))
+ ;; )
+ ;; ((eq (car structure) ?⿹)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿰)
+ ;; (list ?⿰
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 1 enc-str)
+ ;; (nth 2 structure)))
+ ;; (nth 2 enc-str))
+ ;; )))
+ ;; )
+ ;; ((eq (get-char-attribute (car structure) '=ucs-itaiji-001) #x2FF6)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿺)
+ ;; (list ?⿺
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 structure)
+ ;; (nth 1 enc-str)))
+ ;; (nth 2 enc-str))
+ ;; )
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (list ?⿱
+ ;; (list (list 'ideographic-structure
+ ;; ?⿰
+ ;; (nth 2 structure)
+ ;; (nth 1 enc-str)))
+ ;; (nth 2 enc-str))
+ ;; ))
+ ;; )
+ ;; )
+ ;; ((eq (car structure) ?⿴)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (cond
+ ;; ((and (characterp (nth 2 enc-str))
+ ;; (or (memq (char-ucs (nth 2 enc-str)) '(#x56D7 #x5F51 #x897F))
+ ;; (eq (char-feature (nth 2 enc-str) '=>big5-cdp)
+ ;; #x87A5)))
+ ;; (list ?⿱
+ ;; (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿴
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure)))
+ ;; )
+ ;; )
+ ;; ((and (characterp (nth 2 enc-str))
+ ;; (eq (char-ucs (nth 2 enc-str)) #x51F5))
+ ;; (list ?⿱
+ ;; (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿶
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure)))
+ ;; )
+ ;; )
+ ;; ((and (characterp (nth 1 enc-str))
+ ;; (eq (char-feature (nth 1 enc-str) '=>ucs@component)
+ ;; #x300E6))
+ ;; (list ?⿱
+ ;; (list (list 'ideographic-structure
+ ;; ?⿵
+ ;; (nth 1 enc-str)
+ ;; (nth 2 structure)))
+ ;; (nth 2 enc-str))
+ ;; )
+ ;; (t
+ ;; (list ?⿳
+ ;; (nth 1 enc-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc-str))
+ ;; ))
+ ;; ))
+ ;; )
+ ;; )
+ ;; ((eq (car structure) ?⿶)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿱
+ ;; (list (list 'ideographic-structure
+ ;; ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc2-str)))
+ ;; (nth 2 enc-str)))
+ ;; )
+ ;; ((eq (car enc-str) ?⿳)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿳
+ ;; (list (list 'ideographic-structure
+ ;; ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc2-str)))
+ ;; (nth 2 enc-str)
+ ;; (nth 3 enc-str)))
+ ;; )
+ ;; ((eq (car enc-str) ?⿲)
+ ;; (list ?⿲
+ ;; (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 structure)
+ ;; (nth 2 enc-str)))
+ ;; (nth 3 enc-str))
+ ;; )
+ ;; ((eq (car enc-str) ?⿴)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 structure)
+ ;; (nth 2 enc-str)))
+ ;; (nth 2 enc2-str)))
+ ;; )))
+ ;; )
+ ;; ((eq (car structure) ?⿵)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 2 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿱
+ ;; (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc2-str)))))
+ ;; )
+ ;; ((eq (car enc-str) ?⿳)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 3 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿳
+ ;; (nth 1 enc-str)
+ ;; (nth 2 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc2-str)))))
+ ;; )
+ ;; ((eq (car enc-str) ?⿲)
+ ;; (list ?⿲
+ ;; (nth 1 enc-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure)))
+ ;; (nth 3 enc-str))
+ ;; )
+ ;; ((eq (car enc-str) ?⿴)
+ ;; (setq enc2-str (ideographic-character-get-structure (nth 1 enc-str)))
+ ;; (when (and enc2-str
+ ;; (eq (car enc2-str) ?⿰))
+ ;; (list ?⿲
+ ;; (nth 1 enc2-str)
+ ;; (list (list 'ideographic-structure
+ ;; ?⿱
+ ;; (nth 2 enc-str)
+ ;; (nth 2 structure)))
+ ;; (nth 2 enc2-str)))
+ ;; )))
+ ;; )
+ ;; ((eq (car structure) ?⿻)
+ ;; (setq enc (nth 1 structure))
+ ;; (when (setq enc-str
+ ;; (cond ((characterp enc)
+ ;; (get-char-attribute enc 'ideographic-structure)
+ ;; )
+ ;; ((consp enc)
+ ;; (cdr (assq 'ideographic-structure enc))
+ ;; )))
+ ;; (cond
+ ;; ((eq (car enc-str) ?⿱)
+ ;; (list ?⿳
+ ;; (nth 1 enc-str)
+ ;; (nth 2 structure)
+ ;; (nth 2 enc-str))
+ ;; )))
+ ;; ))
+ ;; ))
+ )