(install-ids-read-file "IDS-UCS-Ext-G.txt" load-ids-simplify t)
+(install-ids-read-file "IDS-UCS-Compat.txt" load-ids-simplify t)
+
(let ((i 1))
(while (<= i 3)
(install-ids-read-file (format "IDS-CNS-%d.txt" i)
(install-ids-read-file "IDS-CBETA.txt" load-ids-simplify t)
(install-ids-read-file "IDS-CDP.txt" load-ids-simplify t)
-(let ((i 1))
- (while (<= i 12)
- (install-ids-read-file (format "IDS-HZK%02d.txt" i)
- load-ids-simplify t)
- (setq i (1+ i))))
-
-(princ "Updating char-feature `ideographic-structure'...")
-(save-char-attribute-table 'ideographic-structure)
-(save-char-attribute-table 'ideographic-structure@apparent)
-(princ "done.\n")
-
-(princ "Updating char-feature `ideographic-products'...")
-(let* ((feature-dir
+;; (let ((i 1))
+;; (while (<= i 12)
+;; (install-ids-read-file (format "IDS-HZK%02d.txt" i)
+;; load-ids-simplify t)
+;; (setq i (1+ i))))
+
+(princ "Generating apparent-structure...")
+(let* ((terminal-coding-system 'utf-8-mcs-er)
+ (feature-dir
(expand-file-name
"feature"
(expand-file-name
"character" chise-system-db-directory)))
(p-file
(expand-file-name "ideographic-products" feature-dir))
- old-p-file)
+ old-p-file
+ a-str ret)
(when (file-exists-p p-file)
(setq old-p-file (make-temp-name p-file))
(rename-file p-file old-p-file))
+ (ids-update-index 'in-memory)
+
+ (map-char-attribute
+ (lambda (c v)
+ (unless (equal (setq ret (ideographic-structure-compact v)) v)
+ (princ (format "Compact %04X (%c) : %s -> %s\n"
+ (char-int c)
+ c
+ (ideographic-structure-to-ids v)
+ (ideographic-structure-to-ids ret)))
+ (put-char-attribute c 'ideographic-structure ret)
+ (setq v ret))
+ (unless (setq a-str (get-char-attribute c 'ideographic-structure@apparent))
+ (when (setq a-str (functional-ideographic-structure-to-apparent-structure v))
+ (put-char-attribute c 'ideographic-structure@apparent
+ (ideographic-structure-compact a-str))))
+ nil)
+ 'ideographic-structure)
+
+ (map-char-attribute
+ (lambda (c v)
+ (unless (equal (setq ret (ideographic-structure-compact v)) v)
+ (princ (format "Compact %04X (%c) : [apparent] %s -> %s\n"
+ (char-int c)
+ c
+ (ideographic-structure-to-ids v)
+ (ideographic-structure-to-ids ret)))
+ (put-char-attribute c 'ideographic-structure@apparent ret)
+ (setq v ret))
+ nil)
+ 'ideographic-structure@apparent)
+
+ (map-char-attribute
+ (lambda (c v)
+ (unless (equal (setq ret (ideographic-structure-compact v)) v)
+ (princ (format "Compact %04X (%c) : %s -> %s\n"
+ (char-int c)
+ c
+ (ideographic-structure-to-ids v)
+ (ideographic-structure-to-ids ret)))
+ (put-char-attribute c 'ideographic-structure ret)
+ (setq v ret))
+ nil)
+ 'ideographic-structure)
+ (map-char-attribute
+ (lambda (c v)
+ (unless (equal (setq ret (ideographic-structure-compact v)) v)
+ (princ (format "Compact %04X (%c) : [apparent] %s -> %s\n"
+ (char-int c)
+ c
+ (ideographic-structure-to-ids v)
+ (ideographic-structure-to-ids ret)))
+ (put-char-attribute c 'ideographic-structure@apparent ret)
+ (setq v ret))
+ nil)
+ 'ideographic-structure@apparent)
+ (princ "done.\n")
+
+ (princ "Updating char-feature `ideographic-structure'...")
+ (save-char-attribute-table 'ideographic-structure)
+ (save-char-attribute-table 'ideographic-structure@apparent)
+ (princ "done.\n")
+
+ (princ "Updating char-feature `ideographic-products'...")
(ids-update-index)
(when old-p-file
(delete-file old-p-file)))