X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Futf-2000%2Fchar-db-util.el;h=b3b5e081d159dcd0a81dc63de05a082a6103217d;hb=2ddc889ec52b80578fddbc2cd7e56db9861644aa;hp=5e7b76fe2b671acaa9e250ab730d2d129c1cee96;hpb=d443d8d3ebaddf96e67d47841583087402cabf34;p=chise%2Fxemacs-chise.git diff --git a/lisp/utf-2000/char-db-util.el b/lisp/utf-2000/char-db-util.el index 5e7b76f..b3b5e08 100644 --- a/lisp/utf-2000/char-db-util.el +++ b/lisp/utf-2000/char-db-util.el @@ -81,25 +81,28 @@ (charset-dimension kb)) (cond ((= (charset-chars ka)(charset-chars kb)) (cond - ((>= (charset-final ka) ?@) - (if (>= (charset-final kb) ?@) - (< (charset-final ka) - (charset-final kb)) + ((>= (charset-iso-final-char ka) ?@) + (if (>= (charset-iso-final-char kb) ?@) + (< (charset-iso-final-char ka) + (charset-iso-final-char kb)) t)) - ((>= (charset-final ka) ?0) + ((>= (charset-iso-final-char ka) ?0) (cond - ((>= (charset-final kb) ?@) + ((>= (charset-iso-final-char kb) ?@) nil) - ((>= (charset-final kb) ?0) - (< (charset-final ka) - (charset-final kb))) + ((>= (charset-iso-final-char kb) ?0) + (< (charset-iso-final-char ka) + (charset-iso-final-char kb))) (t))))) ((<= (charset-chars ka)(charset-chars kb))))) (t (< (charset-dimension ka) (charset-dimension kb)) ))) - (t))) + ((symbolp kb) + nil) + (t + t))) ((find-charset kb) t) ((symbolp ka) @@ -112,7 +115,8 @@ (defun insert-char-data (char) (let ((data (char-attribute-alist char)) - cell ret name has-long-ccs-name rest) + cell ret has-long-ccs-name rest + radical strokes) (when data (save-restriction (narrow-to-region (point)(point)) @@ -230,28 +234,75 @@ cell)) (setq data (del-alist 'iso-10646-comment data)) ) - (when (setq cell (assq 'ideographic-radical data)) + (when (setq cell (assq 'morohashi-daikanwa data)) (setq cell (cdr cell)) + (insert (format "(morohashi-daikanwa\t%s) + " + (mapconcat (function prin1-to-string) cell " "))) + (setq data (del-alist 'morohashi-daikanwa data)) + ) + (setq radical nil) + (when (setq cell (assq 'ideographic-radical data)) + (setq radical (cdr cell)) (insert (format "(ideographic-radical . %S)\t; %c " + radical + (aref ideographic-radicals radical))) + (setq data (del-alist 'ideographic-radical data)) + ) + (when (setq cell (assq 'kangxi-radical data)) + (setq cell (cdr cell)) + (unless (eq cell radical) + (insert (format "(kangxi-radical . %S)\t; %c + " + cell + (aref ideographic-radicals cell))) + (setq radical cell)) + (setq data (del-alist 'kangxi-radical data)) + ) + (when (setq cell (assq 'japanese-radical data)) + (setq cell (cdr cell)) + (unless (eq cell radical) + (insert (format "(japanese-radical . %S)\t; %c + " + cell + (aref ideographic-radicals cell))) + (setq radical cell)) + (setq data (del-alist 'japanese-radical data)) + ) + (when (setq cell (assq 'cns-radical data)) + (setq cell (cdr cell)) + (insert (format "(cns-radical\t . %S)\t; %c + " cell (aref ideographic-radicals cell))) - (setq data (del-alist 'ideographic-radical data)) + (setq data (del-alist 'cns-radical data)) ) + (setq strokes nil) (cond ((setq cell (assq 'ideographic-strokes data)) - (setq cell (cdr cell)) + (setq strokes (cdr cell)) (insert (format "(ideographic-strokes . %S) " - cell)) + strokes)) (setq data (del-alist 'ideographic-strokes data)) + (when (setq cell (assq 'japanese-strokes data)) + (setq cell (cdr cell)) + (unless (eq cell strokes) + (insert (format "(japanese-strokes\t . %S) + " + cell)) + (setq strokes cell)) + (setq data (del-alist 'japanese-strokes data)) + ) (when (setq cell (assq 'total-strokes data)) (setq cell (cdr cell)) (insert (format "(total-strokes\t . %S) " cell)) (setq data (del-alist 'total-strokes data)) - )) + ) + ) ((setq cell (assq 'total-strokes data)) (setq cell (cdr cell)) (insert (format "(total-strokes\t. %S) @@ -334,20 +385,22 @@ (while data (setq cell (car data)) (cond ((setq ret (find-charset (car cell))) - (insert (format (if has-long-ccs-name - "(%-26s %s) + (insert + (format + (if has-long-ccs-name + "(%-26s %s) " - "(%-18s %s) + "(%-18s %s) " - ) - (charset-name ret) - (mapconcat - (lambda (b) - (format "#x%02X" - (if (= (charset-graphic ret) 1) - (logior b #x80) - b))) - (cdr cell) " ")))) + ) + (charset-name ret) + (mapconcat + (lambda (b) + (format "#x%02X" + (if (= (charset-iso-graphic-plane ret) 1) + (logior b 128) + b))) + (cdr cell) " ")))) ((string-match "^->" (symbol-name (car cell))) (insert (format "(%-18s %s) @@ -393,10 +446,15 @@ (when (find-charset (car cdef)) (goto-char (match-end 0)) (setq char - (if (or (memq (car cdef) '(ascii latin-viscii-upper - latin-viscii-lower - arabic-iso8859-6)) - (= (char-int (charset-final (car cdef))) 0)) + (if (and + (not (eq (car cdef) 'ideograph-daikanwa)) + (or (memq (car cdef) '(ascii latin-viscii-upper + latin-viscii-lower + arabic-iso8859-6 + japanese-jisx0213-1 + japanese-jisx0213-2)) + (= (char-int (charset-iso-final-char (car cdef))) + 0))) (apply (function make-char) cdef) (if (setq table (charset-mapping-table (car cdef))) (set-charset-mapping-table (car cdef) nil)) @@ -421,8 +479,7 @@ (defun insert-char-range-data (min max) (let ((code min) - char - variants) + char) (while (<= code max) (setq char (int-char code)) (insert-char-data-with-variant char) @@ -434,6 +491,8 @@ (insert-char-range-data min max) (write-region (point-min)(point-max) file))) +(defvar what-character-original-window-configuration) + ;;;###autoload (defun what-char-definition (char) (interactive (list (char-after)))