Mercurial > emacs
changeset 102519:2d1154701720
(print-fontset): Handling of the
argument FONTSET changed for consistency. Reorder the printed
information to match with the font searching strategy.
(describe-fontset): Use face-attribute to get the fontset of the
selected frame.
(mule-diag): Likewise. Print both font and fontset of the frame.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 13 Mar 2009 05:07:59 +0000 |
parents | f990d943735c |
children | 66b0cc830a26 |
files | lisp/international/mule-diag.el |
diffstat | 1 files changed, 40 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/mule-diag.el Fri Mar 13 05:07:41 2009 +0000 +++ b/lisp/international/mule-diag.el Fri Mar 13 05:07:59 2009 +0000 @@ -907,23 +907,52 @@ (defun print-fontset (fontset &optional print-opened) "Print information about FONTSET. -If FONTSET is nil, print information about the default fontset. +FONTSET nil means the fontset of the selected frame, t means the +default fontset. If optional arg PRINT-OPENED is non-nil, also print names of all opened fonts for FONTSET. This function actually inserts the information in the current buffer." - (or fontset - (setq fontset (query-fontset "fontset-default"))) + (if (eq fontset t) + (setq fontset (query-fontset "fontset-default")) + (if (eq fontset nil) + (setq fontset (face-attribute 'default :fontset)))) (beginning-of-line) + (narrow-to-region (point) (point)) (insert "Fontset: " fontset "\n") (insert (propertize "CHAR RANGE" 'face 'underline) " (" (propertize "CODE RANGE" 'face 'underline) ")\n") (insert " " (propertize "FONT NAME" 'face 'underline) " (" (propertize "REQUESTED" 'face 'underline) " and [" (propertize "OPENED" 'face 'underline) "])") - (let ((info (fontset-info fontset))) + (let* ((info (fontset-info fontset)) + (default-info (char-table-extra-slot info 0)) + start1 end1 start2 end2) (describe-vector info 'print-fontset-element) - (insert "\n ---<fallback to the default fontset>---") - (describe-vector (char-table-extra-slot info 0) 'print-fontset-element))) + (when (char-table-range info nil) + ;; The default of FONTSET is described. + (setq start1 (re-search-backward "^default")) + (delete-region (point) (line-end-position)) + (insert "\n ---<fallback to the default of the specified fontset>---") + (put-text-property (line-beginning-position) (point) 'face 'highlight) + (goto-char (point-max)) + (setq end1 (setq start2 (point)))) + (when default-info + (insert "\n ---<fallback to the default fontset>---") + (put-text-property (line-beginning-position) (point) 'face 'highlight) + (describe-vector default-info 'print-fontset-element) + (when (char-table-range default-info nil) + ;; The default of the default fontset is described. + (setq end2 (re-search-backward "^default")) + (delete-region (point) (line-end-position)) + (insert "\n ---<fallback to the default of the default fontset>---") + (put-text-property (line-beginning-position) (point) 'face 'highlight))) + (if (and start1 end2) + ;; Reoder the printed information to match with the font + ;; searching strategy; i.e. FONTSET, the default fontset, + ;; default of FONTSET, default of the default fontset. + (transpose-regions start1 end1 start2 end2)) + (goto-char (point-max))) + (widen)) (defvar fontset-alias-alist) (declare-function fontset-list "fontset.c" ()) @@ -943,8 +972,8 @@ "Fontset (default used by the current frame): " fontset-list nil t))))) (if (= (length fontset) 0) - (setq fontset (frame-parameter nil 'font))) - (setq fontset (query-fontset fontset)) + (setq fontset (face-attribute 'default :fontset)) + (setq fontset (query-fontset fontset))) (help-setup-xref (list #'describe-fontset fontset) (interactive-p)) (with-output-to-temp-buffer (help-buffer) (with-current-buffer standard-output @@ -1064,9 +1093,9 @@ (if window-system (let ((font (cdr (assq 'font (frame-parameters))))) - (insert "The selected frame is using the " - (if (query-fontset font) "fontset" "font") - ":\n\t" font)) + (insert "The font and fontset of the selected frame are:\n" + " font: " font "\n" + " fontset: " (face-attribute 'default :fontset) "\n")) (insert "Coding system of the terminal: " (symbol-name (terminal-coding-system)))) (insert "\n\n")