(defvar char-db-feature-domains
'(ucs daikanwa cns gt jis jis/alt jis/a jis/b
- jis-x0213 misc unknown))
+ jis-x0212 jis-x0213 cdp shinjigen misc unknown))
(defvar char-db-ignored-attributes nil)
=big5
=big5-eten
=gt-k
+ =jis-x0208@1997
=jef-china3))
(defun char-db-make-char-spec (char)
(if (and (or (charset-iso-final-char ccs)
(memq ccs
'(=daikanwa
- =daikanwa-rev2
+ =daikanwa@rev2
;; =gt-k
)))
(setq ret (encode-char char ccs 'defined-only)))
(defvar char-db-convert-obsolete-format t)
+(defun char-db-insert-ccs-feature (name value line-breaking)
+ (insert
+ (format
+ (cond ((memq name '(=daikanwa
+ =daikanwa@rev1 =daikanwa@rev2
+ =gt =gt-k =cbeta))
+ "(%-18s . %05d)\t; %c")
+ ((eq name 'mojikyo)
+ "(%-18s . %06d)\t; %c")
+ ((>= (charset-dimension name) 2)
+ "(%-18s . #x%04X)\t; %c")
+ (t
+ "(%-18s . #x%02X)\t; %c"))
+ name
+ (if (= (charset-iso-graphic-plane name) 1)
+ (logior value
+ (cond ((= (charset-dimension name) 1)
+ #x80)
+ ((= (charset-dimension name) 2)
+ #x8080)
+ ((= (charset-dimension name) 3)
+ #x808080)
+ (t 0)))
+ value)
+ (char-db-decode-isolated-char name value)))
+ (if (and (= (charset-chars name) 94)
+ (= (charset-dimension name) 2))
+ (insert (format " [%02d-%02d]"
+ (- (lsh value -8) 32)
+ (- (logand value 255) 32))))
+ (insert line-breaking))
+
(defun insert-char-attributes (char &optional readable attributes column)
(unless column
(setq column (current-column)))
- (let (name value has-long-ccs-name rest
+ (let (name value ; has-long-ccs-name
+ rest
radical strokes
(line-breaking
(concat "\n" (make-string (1+ column) ?\ )))
line-breaking))
(setq attributes (delq name attributes))
))
- ;; (dolist (name '(=>ucs-gb =>ucs-cns =>ucs-jis =>ucs-ks =>ucs-big5))
- ;; (when (and (memq name attributes)
- ;; (setq value (get-char-attribute char name)))
- ;; (insert (format "(%-18s . #x%04X)\t; %c%s"
- ;; (intern
- ;; (concat "=>ucs@"
- ;; (substring (symbol-name name) 6)))
- ;; value
- ;; (decode-char (intern
- ;; (concat "=ucs@"
- ;; (substring
- ;; (symbol-name name) 6)))
- ;; value)
- ;; line-breaking))
- ;; (setq attributes (delq name attributes))))
- ;; (when (and (memq '->ucs attributes)
- ;; (setq value (get-char-attribute char '->ucs)))
- ;; (insert (format (if char-db-convert-obsolete-format
- ;; "(=>ucs\t\t. #x%04X)\t; %c%s"
- ;; "(->ucs\t\t. #x%04X)\t; %c%s")
- ;; value (decode-char '=ucs value)
- ;; line-breaking))
- ;; (setq attributes (delq '->ucs attributes))
- ;; )
(dolist (name '(=>daikanwa))
(when (and (memq name attributes)
(setq value (get-char-attribute char name)))
(unless readable
(dolist (ignored '(composition
->denotational <-subsumptive ->ucs-unified
- ->ideographic-component-forms
- <-same))
+ ->ideographic-component-forms))
(setq attributes (delq ignored attributes))))
- ;; (setq rest ccs-attributes)
- ;; (while (and rest
- ;; (progn
- ;; (setq value (get-char-attribute char (car rest)))
- ;; (if value
- ;; (if (>= (length (symbol-name (car rest))) 19)
- ;; (progn
- ;; (setq has-long-ccs-name t)
- ;; nil)
- ;; t)
- ;; t)))
- ;; (setq rest (cdr rest)))
(while attributes
(setq name (car attributes))
(if (setq value (get-char-attribute char name))
(prog1
(setq value (get-char-attribute char name))
(setq dest-ccss (cons name dest-ccss))))
- (insert
- (format
- (cond ((memq name '(=daikanwa
- =daikanwa-rev1 =daikanwa-rev2
- =gt =gt-k =cbeta))
- (if has-long-ccs-name
- "(%-26s . %05d)\t; %c%s"
- "(%-18s . %05d)\t; %c%s"))
- ((eq name 'mojikyo)
- (if has-long-ccs-name
- "(%-26s . %06d)\t; %c%s"
- "(%-18s . %06d)\t; %c%s"))
- ((>= (charset-dimension name) 2)
- (if has-long-ccs-name
- "(%-26s . #x%04X)\t; %c%s"
- "(%-18s . #x%04X)\t; %c%s"))
- (t
- (if has-long-ccs-name
- "(%-26s . #x%02X)\t; %c%s"
- "(%-18s . #x%02X)\t; %c%s")))
- name
- (if (= (charset-iso-graphic-plane name) 1)
- (logior value
- (cond ((= (charset-dimension name) 1)
- #x80)
- ((= (charset-dimension name) 2)
- #x8080)
- ((= (charset-dimension name) 3)
- #x808080)
- (t 0)))
- value)
- (char-db-decode-isolated-char name value)
- line-breaking)))
+ (char-db-insert-ccs-feature name value line-breaking))
)
((string-match "^=>ucs@" (symbol-name name))
(insert (format "(%-18s . #x%04X)\t; %c%s"
(not (string-match "\\*sources$" (symbol-name name)))
(or (eq name '<-identical)
(string-match "^->simplified" (symbol-name name))
+ ;; (string-match "^<-same" (symbol-name name))
+ (string-match "^->same" (symbol-name name))
+ ;; (string-match "^->ideographic-same" (symbol-name name))
(string-match "^->vulgar" (symbol-name name))
(string-match "^->wrong" (symbol-name name))
+ (string-match "^->original" (symbol-name name))
+ (string-match "^->ancient" (symbol-name name))
))
)
((or (eq name 'ideographic-structure)
(setq required-features
(union required-features
'(=jis-x0208
- =jis-x0208-1990
+ =jis-x0208@1990
=jis-x0213-1-2000
=jis-x0213-2-2000
=jis-x0212
- =jis-x0208-1983
- =jis-x0208-1978))))
+ =jis-x0208@1983
+ =jis-x0208@1978))))
((eq source 'CN)
(setq required-features
(union required-features
(setq required-features
(union required-features
'(=jis-x0208
- =jis-x0208-1990
+ =jis-x0208@1990
=jis-x0213-1-2000
=jis-x0213-2-2000
=jis-x0212
- =jis-x0208-1983
- =jis-x0208-1978))))
+ =jis-x0208@1983
+ =jis-x0208@1978))))
((string-match "@CN" (symbol-name name))
(setq required-features
(union required-features
line-breaking)))
))
(setq attributes (cdr attributes)))
- ;; (while ccs-attributes
- ;; (setq name (charset-name (car ccs-attributes)))
- ;; (if (and (not (memq name dest-ccss))
- ;; (prog1
- ;; (setq value (get-char-attribute char name))
- ;; (setq dest-ccss (cons name dest-ccss))))
- ;; (insert
- ;; (format
- ;; (cond ((memq name '(=daikanwa
- ;; =daikanwa-rev1 =daikanwa-rev2
- ;; =gt =gt-k =cbeta))
- ;; (if has-long-ccs-name
- ;; "(%-26s . %05d)\t; %c%s"
- ;; "(%-18s . %05d)\t; %c%s"))
- ;; ((eq name 'mojikyo)
- ;; (if has-long-ccs-name
- ;; "(%-26s . %06d)\t; %c%s"
- ;; "(%-18s . %06d)\t; %c%s"))
- ;; ((>= (charset-dimension name) 2)
- ;; (if has-long-ccs-name
- ;; "(%-26s . #x%04X)\t; %c%s"
- ;; "(%-18s . #x%04X)\t; %c%s"))
- ;; (t
- ;; (if has-long-ccs-name
- ;; "(%-26s . #x%02X)\t; %c%s"
- ;; "(%-18s . #x%02X)\t; %c%s")))
- ;; name
- ;; (if (= (charset-iso-graphic-plane name) 1)
- ;; (logior value
- ;; (cond ((= (charset-dimension name) 1)
- ;; #x80)
- ;; ((= (charset-dimension name) 2)
- ;; #x8080)
- ;; ((= (charset-dimension name) 3)
- ;; #x808080)
- ;; (t 0)))
- ;; value)
- ;; (char-db-decode-isolated-char name value)
- ;; line-breaking)))
- ;; (setq ccs-attributes (cdr ccs-attributes)))
(insert ")")))
(defun insert-char-data (char &optional readable