aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/international/mule-diag.el
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>2009-03-13 05:08:19 +0000
committerKenichi Handa <[email protected]>2009-03-13 05:08:19 +0000
commitd102151dabddcce2860f82b5291ab106c27d534f (patch)
treebde2a47e3d197090af14de35b0345fe31d9f47c9 /lisp/international/mule-diag.el
parent2d2db320ff86719ac7742f94d957b62123897561 (diff)
(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.
Diffstat (limited to 'lisp/international/mule-diag.el')
-rw-r--r--lisp/international/mule-diag.el51
1 files changed, 40 insertions, 11 deletions
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index 50b8022cc7..bc8ffbb782 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -907,23 +907,52 @@ The font must be already used by Emacs."
(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 @@ This shows which font is used for which character(s)."
"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 @@ system which uses fontsets)."
(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")