Compact/fix/modify some IDSs.
[chise/ids.git] / ids-dump.el
index 6d770a0..ea54637 100644 (file)
        (format "MH-%04d \t%c\t%s\n"
               (car cell)
               chr
-              (ids-format-list
-               (get-char-attribute chr 'ideographic-structure)))))))
+              (or (ids-format-list
+                   (get-char-attribute chr 'ideographic-structure))
+                  ""))))))
 
 (defun ids-dump-insert-jis-x0208-1990 ()
   (let ((row 16)
        (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)))))
+
 (defun ids-dump-range (file path func &rest args)
   (with-temp-buffer
     (let* ((coding-system-for-write 'utf-8-mcs-er))
 (defun ids-dump-big5-cdp (filename)
   (interactive "Fdump IDS-CDP : ")
   (ids-dump-range "IDS-CDP.txt" filename
-                 #'ids-dump-insert-big5
+                 #'ids-dump-insert-big5-pua
                  '=big5-cdp "CDP-"))