diff options
author | Dave Love <fx@gnu.org> | 2003-09-01 18:45:35 +0000 |
---|---|---|
committer | Dave Love <fx@gnu.org> | 2003-09-01 18:45:35 +0000 |
commit | 05c847cf4532ed4acb77a31cf87a922ef6877159 (patch) | |
tree | 2d0103a231f4bd77373d6e265df51d43ce6234f5 | |
parent | 90c673b61378526cd3fa46e1fd295a477f9e5b15 (diff) | |
download | emacs-05c847cf4532ed4acb77a31cf87a922ef6877159.tar.gz |
(char-displayable-p): Moved from
latin1-disp, renamed and autoloaded.
-rw-r--r-- | lisp/international/mule-util.el | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index d5002bdae74..b667ec9227a 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -2,6 +2,7 @@ ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. +;; Copyright (C) 2000, 2002 Free Software Foundation, Inc. ;; Keywords: mule, multilingual @@ -358,6 +359,45 @@ language environment LANG-ENV." coding-priority)) (detect-coding-region from to)))) +;;;###autoload +(defun char-displayable-p (char) + "Return non-nil if we should be able to display CHAR. +On a multi-font display, the test is only whether there is an +appropriate font from the selected frame's fontset to display CHAR's +charset in general. Since fonts may be specified on a per-character +basis, this may not be accurate." + (cond ((< char 256) + ;; Single byte characters are always displayable. + t) + ((display-multi-font-p) + ;; On a window system, a character is displayable if we have + ;; a font for that character in the default face of the + ;; currently selected frame. + (let ((fontset (frame-parameter (selected-frame) 'font)) + font-pattern) + (if (query-fontset fontset) + (setq font-pattern (fontset-font fontset char))) + (or font-pattern + (setq font-pattern (fontset-font "fontset-default" char))) + (if font-pattern + (progn + ;; Now FONT-PATTERN is a string or a cons of family + ;; field pattern and registry field pattern. + (or (stringp font-pattern) + (setq font-pattern (concat "-" + (or (car font-pattern) "*") + "-*-" + (cdr font-pattern)))) + (x-list-fonts font-pattern 'default (selected-frame) 1))))) + (t + (let ((coding (terminal-coding-system))) + (if coding + (let ((safe-chars (coding-system-get coding 'safe-chars)) + (safe-charsets (coding-system-get coding 'safe-charsets))) + (or (and safe-chars + (aref safe-chars char)) + (and safe-charsets + (memq (char-charset char) safe-charsets))))))))) (provide 'mule-util) |