+(defun ids-dump-insert-big5 (ccs prefix)
+ (let ((h #x81)
+ l code chr structure)
+ (while (<= h #xFE)
+ (setq l #x40)
+ (while (<= l #x7E)
+ (setq chr (make-char ccs h l))
+ (setq structure nil)
+ (when (setq structure
+ (get-char-attribute chr 'ideographic-structure))
+ (insert
+ (format "%s%02X%02X\t%c\t%s\n"
+ prefix h l
+ (decode-builtin-char ccs
+ (logior (lsh h 8) l))
+ (or (ids-format-list
+ (get-char-attribute chr 'ideographic-structure))
+ ""))))
+ (setq l (1+ l)))
+ (setq l #xA1)
+ (while (<= l #xFE)
+ (setq chr (make-char ccs h l))
+ (setq structure nil)
+ (when (setq structure
+ (get-char-attribute chr 'ideographic-structure))
+ (insert
+ (format "%s%02X%02X\t%c\t%s\n"
+ prefix h l
+ (decode-builtin-char ccs
+ (logior (lsh h 8) l))
+ (or (ids-format-list
+ (get-char-attribute chr 'ideographic-structure))
+ ""))))
+ (setq l (1+ l)))
+ (setq h (1+ h)))))
+
+(defun ids-dump-insert-big5-pua (ccs prefix)
+ (let ((line-spec (concat prefix "%04X\t%c\t%s\n"))
+ (h #x81)
+ l)
+ (while (<= h #xA0)
+ (setq l #x40)
+ (while (<= l #x7E)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq l #xA1)
+ (while (<= l #xFE)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq h (1+ h)))
+ (setq h #xC6)
+ (setq l #xDE)
+ (while (<= l #xFE)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq h #xC7)
+ (while (<= h #xC8)
+ (setq l #x40)
+ (while (<= l #x7E)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq l #xA1)
+ (while (<= l #xFE)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq h (1+ h)))
+ (setq h #xFA)
+ (while (<= h #xFE)
+ (setq l #x40)
+ (while (<= l #x7E)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq l #xA1)
+ (while (<= l #xFE)
+ (ids-dump-insert-line ccs line-spec (logior (lsh h 8) l))
+ (setq l (1+ l)))
+ (setq h (1+ h)))))
+