Subject: 23.0.60; Emacs trying too hard to find fonts that don't exist

From: Jason Rumney <[email-masked]>
Date: Thu, 22 Jan 2009 21:22:32 +0800

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing 
list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

If fonts are not installed for some characters, then Emacs keeps trying 
to find fonts for them every time those characters are redisplayed. The 
following excerpt from font-log is with the xft font backend on 
GNU/Linux where the search is quick, thus not noticeable, but on Windows 
the search for fonts is expensive, so redisplay takes a couple of 
seconds. I have cut the end off, as the full font-log is long, but you 
can see from the first two font-for entries that Emacs is trying twice 
for the same character (and it tries again many times further down the log).

font for: (4121 . mule-unicode-0100-24ff)
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
list: -bitstream-Bitstream Vera Sans Mono-*-gb18030*-*
list: -*-Bitstream Vera Sans Mono-*-gb18030*-*
list: -bitstream-*-gb18030*-*
list: -*-gb18030*-*
list: -bitstream-Bitstream Vera Sans Mono-*-ksc5601.1987*-*
list: -*-Bitstream Vera Sans Mono-*-ksc5601.1987*-*
list: -bitstream-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-1
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-1
list: -bitstream-*-cns11643.1992-1
list: -*-cns11643.1992-1
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-4
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-4
list: -bitstream-*-cns11643.1992-4
list: -*-cns11643.1992-4
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-5
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-5
list: -bitstream-*-cns11643.1992-5
list: -*-cns11643.1992-5
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-6
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-6
list: -bitstream-*-cns11643.1992-6
list: -*-cns11643.1992-6
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-7
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-7
list: -bitstream-*-cns11643.1992-7
list: -*-cns11643.1992-7
font for: (4121 . mule-unicode-0100-24ff)
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
list: -bitstream-Bitstream Vera Sans Mono-*-gb18030*-*
list: -*-Bitstream Vera Sans Mono-*-gb18030*-*
list: -bitstream-*-gb18030*-*
list: -*-gb18030*-*
list: -bitstream-Bitstream Vera Sans Mono-*-ksc5601.1987*-*
list: -*-Bitstream Vera Sans Mono-*-ksc5601.1987*-*
list: -bitstream-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-1
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-1
list: -bitstream-*-cns11643.1992-1
list: -*-cns11643.1992-1
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-4
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-4
list: -bitstream-*-cns11643.1992-4
list: -*-cns11643.1992-4
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-5
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-5
list: -bitstream-*-cns11643.1992-5
list: -*-cns11643.1992-5
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-6
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-6
list: -bitstream-*-cns11643.1992-6
list: -*-cns11643.1992-6
list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-7
list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-7
list: -bitstream-*-cns11643.1992-7
list: -*-cns11643.1992-7

To reproduce: C-h h
On my system, there are boxes displayed for Sinhala, Tibetan, Khmer and 
Burmese.
Scroll down so that the first set of boxes disappears just off the top 
of the window.
M-: (setq font-log nil)
Scroll back up
M-x font-show-log

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/home/jasonr/emacs/etc/DEBUG for instructions.

In GNU Emacs 23.0.60.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.12.11)
 of 2008-12-28 on wanchan.jasonrumney.net
Windowing system distributor `Colin Harrison', version 11.0.60900031
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Help

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  view-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <escape>
x C-g C-h h <help-echo> <next> <prior> <down> <down>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>
<mouse-1> <mouse-1> <mouse-1> <escape> : ( s e t q
SPC f o n t - l o g SPC n i l ) <return> <prior> <escape>
x f o n t - s h <tab> <return> <down-mouse-1> <mouse-movement>
<mouse-movement> <mouse-movement> <mouse-movement>
<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>
<prior> <prior> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> C-@
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <escape>
w <help-echo> <help-echo> <help-echo> <help-echo> <escape>
x r e p o r t - e m a <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit
Loading vc-cvs...done
View mode: type C-h for help, h for commands, q to quit.
nil
Mark activated
Saved text from "font for: (4121 . mule-unicode-0100-24ff"