unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
@ 2009-01-22 13:22 Jason Rumney
  2009-01-24 13:28 ` Juanma Barranquero
  0 siblings, 1 reply; 15+ messages in thread
From: Jason Rumney @ 2009-01-22 13:22 UTC (permalink / raw)
  To: emacs-pretest-bug

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 emacs-pretest-bug@gnu.org 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"







^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
@ 2009-01-23  5:04 Chong Yidong
  2009-01-23 14:00 ` Jason Rumney
  0 siblings, 1 reply; 15+ messages in thread
From: Chong Yidong @ 2009-01-23  5:04 UTC (permalink / raw)
  To: Jason Rumney; +Cc: 1990, Kenichi Handa

> 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).

At the end of fontset_font (fontset.c:699), there is the following code:

  /* Remeber that we have no font for C.  */
  FONTSET_SET (fontset, make_number (c), Qt);

  return Qnil;

However, there are several other places in that function that return
with a Qnil, without doing this FONTSET_SET.  Do matters improve if we
do the same FONTSET_SET call before returning?






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
  2009-01-23  5:04 bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Chong Yidong
@ 2009-01-23 14:00 ` Jason Rumney
  2009-01-24 19:47   ` Chong Yidong
  0 siblings, 1 reply; 15+ messages in thread
From: Jason Rumney @ 2009-01-23 14:00 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 1990, Kenichi Handa

Chong Yidong wrote:
> At the end of fontset_font (fontset.c:699), there is the following code:
>
>   /* Remeber that we have no font for C.  */
>   FONTSET_SET (fontset, make_number (c), Qt);
>
>   return Qnil;
>
> However, there are several other places in that function that return
> with a Qnil, without doing this FONTSET_SET.  Do matters improve if we
> do the same FONTSET_SET call before returning?
>   

It doesn't seem to help much, if at all.

Looking at those other locations, nil is only returned when some other 
function returns t, indicating that it already remembers that we have no 
font.







^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-22 13:22 Jason Rumney
@ 2009-01-24 13:28 ` Juanma Barranquero
  2009-01-24 14:02   ` Jason Rumney
  0 siblings, 1 reply; 15+ messages in thread
From: Juanma Barranquero @ 2009-01-24 13:28 UTC (permalink / raw)
  To: Jason Rumney; +Cc: 1990

On Thu, Jan 22, 2009 at 14:22, Jason Rumney <jasonr@gnu.org> wrote:

> If fonts are not installed for some characters, then Emacs keeps trying to
> find fonts for them every time those characters are redisplayed.

Is this bug related to #1952, "23.0.60[W32-Mingw];opening etc/HELLO is
slower than before"?

    Juanma






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-24 13:28 ` Juanma Barranquero
@ 2009-01-24 14:02   ` Jason Rumney
  0 siblings, 0 replies; 15+ messages in thread
From: Jason Rumney @ 2009-01-24 14:02 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: 1990

Juanma Barranquero wrote:
> On Thu, Jan 22, 2009 at 14:22, Jason Rumney <jasonr@gnu.org> wrote:
>   
>> If fonts are not installed for some characters, then Emacs keeps trying to
>> find fonts for them every time those characters are redisplayed.
>>     
>
> Is this bug related to #1952, "23.0.60[W32-Mingw];opening etc/HELLO is
> slower than before"?
>   

Probably.







^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
  2009-01-23 14:00 ` Jason Rumney
@ 2009-01-24 19:47   ` Chong Yidong
  2009-01-24 21:50     ` Juanma Barranquero
  2009-01-26  8:00     ` Kenichi Handa
  0 siblings, 2 replies; 15+ messages in thread
From: Chong Yidong @ 2009-01-24 19:47 UTC (permalink / raw)
  To: Jason Rumney; +Cc: 1990, Kenichi Handa

Jason Rumney <jasonr@gnu.org> writes:

>> However, there are several other places in that function that return
>> with a Qnil, without doing this FONTSET_SET.  Do matters improve if
>> we do the same FONTSET_SET call before returning?
>
> It doesn't seem to help much, if at all.

How about something like this?  Does it improve performance noticeably?

*** trunk/src/fontset.c.~1.150.~	2009-01-08 06:46:23.000000000 -0500
--- trunk/src/fontset.c	2009-01-24 14:44:09.000000000 -0500
***************
*** 660,665 ****
--- 660,668 ----
    Lisp_Object rfont_def;
    Lisp_Object base_fontset;
  
+   if (EQ (Fchar_table_range (fontset, make_number (c)), Qt))
+     return Qnil;
+ 
    /* Try a font-group of FONTSET. */
    rfont_def = fontset_find_font (fontset, c, face, id, 0);
    if (VECTORP (rfont_def))







^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-24 19:47   ` Chong Yidong
@ 2009-01-24 21:50     ` Juanma Barranquero
  2009-01-24 21:55       ` Chong Yidong
  2009-01-25  5:22       ` Jason Rumney
  2009-01-26  8:00     ` Kenichi Handa
  1 sibling, 2 replies; 15+ messages in thread
From: Juanma Barranquero @ 2009-01-24 21:50 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Kenichi Handa, 1990

On Sat, Jan 24, 2009 at 20:47, Chong Yidong <cyd@stupidchicken.com> wrote:

> How about something like this?  Does it improve performance noticeably?

For me, it fixes #1952: moving in etc/HELLO is again fast.

It does not fix #1990, though. Emacs is still repeatedly trying to
find fonts for characters that do not have one:

9 matches for "1501" in buffer: *Help*
     28:font for: (1501 . hebrew-iso8859-8)
    218:font for: (1501 . mule-unicode-0100-24ff)
    299:font for: (1501 . hebrew-iso8859-8)
    335:font for: (1501 . hebrew-iso8859-8)
    525:font for: (1501 . mule-unicode-0100-24ff)
    606:font for: (1501 . hebrew-iso8859-8)
    642:font for: (1501 . hebrew-iso8859-8)
    832:font for: (1501 . mule-unicode-0100-24ff)

    Juanma






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-24 21:50     ` Juanma Barranquero
@ 2009-01-24 21:55       ` Chong Yidong
  2009-01-24 22:06         ` Juanma Barranquero
  2009-01-25  5:22       ` Jason Rumney
  1 sibling, 1 reply; 15+ messages in thread
From: Chong Yidong @ 2009-01-24 21:55 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: Kenichi Handa, 1990

Juanma Barranquero <lekktu@gmail.com> writes:

> For me, it fixes #1952: moving in etc/HELLO is again fast.
>
> It does not fix #1990, though. Emacs is still repeatedly trying to
> find fonts for characters that do not have one:
>
> 9 matches for "1501" in buffer: *Help*
>      28:font for: (1501 . hebrew-iso8859-8)

That log message is emitted just before calling fontset_font (which is
where we would check whether fonts are known not to exist).






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-24 21:55       ` Chong Yidong
@ 2009-01-24 22:06         ` Juanma Barranquero
  0 siblings, 0 replies; 15+ messages in thread
From: Juanma Barranquero @ 2009-01-24 22:06 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Kenichi Handa, 1990

On Sat, Jan 24, 2009 at 22:55, Chong Yidong <cyd@stupidchicken.com> wrote:

> That log message is emitted just before calling fontset_font (which is
> where we would check whether fonts are known not to exist).

OK.

Then, please install your change. It's a big improvement.

    Juanma






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-24 21:50     ` Juanma Barranquero
  2009-01-24 21:55       ` Chong Yidong
@ 2009-01-25  5:22       ` Jason Rumney
  2009-01-25 11:57         ` Juanma Barranquero
  1 sibling, 1 reply; 15+ messages in thread
From: Jason Rumney @ 2009-01-25  5:22 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: Chong Yidong, 1990, Kenichi Handa

Juanma Barranquero wrote:
> It does not fix #1990, though. Emacs is still repeatedly trying to
> find fonts for characters that do not have one:
>
> 9 matches for "1501" in buffer: *Help*
>      28:font for: (1501 . hebrew-iso8859-8)
>     218:font for: (1501 . mule-unicode-0100-24ff)

That looks much better though. Before, each "font for:" log entry was 
followed by a dozen or so "list:" entries, which is what takes excessive 
time on Windows.







^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-25  5:22       ` Jason Rumney
@ 2009-01-25 11:57         ` Juanma Barranquero
  2009-01-26 11:46           ` Kenichi Handa
  0 siblings, 1 reply; 15+ messages in thread
From: Juanma Barranquero @ 2009-01-25 11:57 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Chong Yidong, 1990, Kenichi Handa

On Sun, Jan 25, 2009 at 06:22, Jason Rumney <jasonr@gnu.org> wrote:

> That looks much better though. Before, each "font for:" log entry was
> followed by a dozen or so "list:" entries, which is what takes excessive
> time on Windows.

They still are. That was the output of M-occur on the *Help* buffer.

For example, that's the result of

emacs -Q
C-h H
M-: (setq font-log nil)
M-x font-show-log


font for: (1513 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (3626 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3623 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3626 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3604 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3588 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3619 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3610 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (20803 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (27683 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (38283 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (30332 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (940 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=greek
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek
list: -*-DejaVu Sans Mono-*-iso10646-1:script=greek
list: -outline-*-mono-*-iso10646-1:script=greek
list: -outline-*-iso10646-1:script=greek
list: -*-mono-*-iso10646-1:script=greek
list: -*-iso10646-1:script=greek
font for: (1513 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1514 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1497 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1512 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1489 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1506 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1513 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1513 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (3626 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3623 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3626 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3604 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3588 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3619 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (3610 . tis620-2533)
list: -mutt-clearlyu-*-mono-*-iso10646-1
list: -mutt-clearlyu-*-iso10646-1
list: -gnu-unifont-*-mono-*-iso10646-1
list: -gnu-unifont-*-iso10646-1
font for: (20803 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (27683 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (38283 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (30332 . korean-ksc5601)
list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-*
list: -*-DejaVu Sans Mono-*-ksc5601.1987*-*
list: -outline-*-mono-*-ksc5601.1987*-*
list: -outline-*-ksc5601.1987*-*
list: -*-mono-*-ksc5601.1987*-*
list: -*-ksc5601.1987*-*
font for: (940 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=greek
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek
list: -*-DejaVu Sans Mono-*-iso10646-1:script=greek
list: -outline-*-mono-*-iso10646-1:script=greek
list: -outline-*-iso10646-1:script=greek
list: -*-mono-*-iso10646-1:script=greek
list: -*-iso10646-1:script=greek
font for: (1513 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . mule-unicode-0100-24ff)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1514 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1497 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1512 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1489 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1506 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1513 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1500 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1493 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (1501 . hebrew-iso8859-8)
list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
list: -outline-*-mono-*-iso10646-1:script=hebrew
list: -outline-*-iso10646-1:script=hebrew
list: -*-mono-*-iso10646-1:script=hebrew
list: -*-iso10646-1:script=hebrew
font for: (295 . iso-8859-3)
list: -outline-DejaVu Sans Mono-normal-*-normal-mono-*-c-*-iso8859-1
  -outline-DejaVu Sans Mono-normal-normal-normal-mono-*-c-*-iso8859-1
  -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1
  -outline-DejaVu Sans Mono-normal-normal-normal-mono-*-c-*-iso8859-1
  -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1
sort-by: -outline-DejaVu Sans Mono-normal-italic-normal-mono-13-*-c-*-iso8859-1
  uniscribe:-outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1
open: -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1
  uniscribe:-outline-DejaVu Sans
Mono-normal-italic-normal-mono-13-*-c-*-iso8859-1






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
  2009-01-24 19:47   ` Chong Yidong
  2009-01-24 21:50     ` Juanma Barranquero
@ 2009-01-26  8:00     ` Kenichi Handa
  2009-01-26 15:51       ` Chong Yidong
  1 sibling, 1 reply; 15+ messages in thread
From: Kenichi Handa @ 2009-01-26  8:00 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 1990

In article <87d4ec1o6z.fsf@cyd.mit.edu>, Chong Yidong <cyd@stupidchicken.com> writes:

> Jason Rumney <jasonr@gnu.org> writes:
>>> However, there are several other places in that function that return
>>> with a Qnil, without doing this FONTSET_SET.  Do matters improve if
>>> we do the same FONTSET_SET call before returning?
> >
> > It doesn't seem to help much, if at all.

> How about something like this?  Does it improve performance noticeably?

> *** trunk/src/fontset.c.~1.150.~	2009-01-08 06:46:23.000000000 -0500
> --- trunk/src/fontset.c	2009-01-24 14:44:09.000000000 -0500
> ***************
> *** 660,665 ****
> --- 660,668 ----
>     Lisp_Object rfont_def;
>     Lisp_Object base_fontset;
  
> +   if (EQ (Fchar_table_range (fontset, make_number (c)), Qt))
> +     return Qnil;
> + 
>     /* Try a font-group of FONTSET. */
>     rfont_def = fontset_find_font (fontset, c, face, id, 0);
>     if (VECTORP (rfont_def))

I found a bug in fontset_find_font in handling non-cons
return value of fontset_get_font_group (it seems that I
embugged it when I modified fontset.c largely last time).

Your change surely fixes the bug, but it does unnecessary
char-table lookup for the normal case (i.e. a font is
found).  So, I think the following patch is better.

If you agree, please install it.  I, at the moment, can't do
cvs commit.

2009-01-26  Kenichi Handa  <handa@m17n.org>

	* fontset.c (fontset_find_font): Fix handling of non-cons return
	value of fontset_get_font_group.
	(fontset_font): Cancel previous change.

*** fontset.c.~1.151.~	2009-01-26 16:52:57.000000000 +0900
--- fontset.c	2009-01-26 16:53:14.000000000 +0900
***************
*** 521,527 ****
  
    font_group = fontset_get_font_group (fontset, fallback ? -1 : c);
    if (! CONSP (font_group))
!     return Qnil;
    vec = XCDR (font_group);
    if (ASIZE (vec) == 0)
      return Qnil;
--- 521,527 ----
  
    font_group = fontset_get_font_group (fontset, fallback ? -1 : c);
    if (! CONSP (font_group))
!     return font_group;
    vec = XCDR (font_group);
    if (ASIZE (vec) == 0)
      return Qnil;
***************
*** 660,669 ****
    Lisp_Object rfont_def;
    Lisp_Object base_fontset;
  
-   /* If we know there is no font of C, don't do any work.  */
-   if (EQ (fontset_ref (fontset, c), Qt))
-     return Qnil;
- 
    /* Try a font-group of FONTSET. */
    rfont_def = fontset_find_font (fontset, c, face, id, 0);
    if (VECTORP (rfont_def))
--- 660,665 ----
---
Kenichi Handa
handa@m17n.org






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-25 11:57         ` Juanma Barranquero
@ 2009-01-26 11:46           ` Kenichi Handa
  2009-01-26 12:02             ` Juanma Barranquero
  0 siblings, 1 reply; 15+ messages in thread
From: Kenichi Handa @ 2009-01-26 11:46 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: cyd, 1990

In article <f7ccd24b0901250357p6ac606beh67a4f2d4562e6230@mail.gmail.com>, Juanma Barranquero <lekktu@gmail.com> writes:

> On Sun, Jan 25, 2009 at 06:22, Jason Rumney <jasonr@gnu.org> wrote:
> > That looks much better though. Before, each "font for:" log entry was
> > followed by a dozen or so "list:" entries, which is what takes excessive
> > time on Windows.

> They still are. That was the output of M-occur on the *Help* buffer.

> For example, that's the result of

> emacs -Q
> C-h H
> M-: (setq font-log nil)
> M-x font-show-log

> font for: (1513 . hebrew-iso8859-8)
> list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
> list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew
> list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew
> list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew
> list: -outline-*-mono-*-iso10646-1:script=hebrew
> list: -outline-*-iso10646-1:script=hebrew
> list: -*-mono-*-iso10646-1:script=hebrew
> list: -*-iso10646-1:script=hebrew
[...]

As there's no logs from the font-backend's `list' method,
the above listings actually did cache looking up only, and
thus they should not be that slow.  If you do:

M-: (setq font-log nil)

before C-h H, you'll see logs from the font-backend (labeled
"uniscribe-list:" or "w32font-list:" on Windows).

---
Kenichi Handa
handa@m17n.org






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't  exist
  2009-01-26 11:46           ` Kenichi Handa
@ 2009-01-26 12:02             ` Juanma Barranquero
  0 siblings, 0 replies; 15+ messages in thread
From: Juanma Barranquero @ 2009-01-26 12:02 UTC (permalink / raw)
  To: Kenichi Handa; +Cc: cyd, 1990

On Mon, Jan 26, 2009 at 12:46, Kenichi Handa <handa@m17n.org> wrote:

> As there's no logs from the font-backend's `list' method,
> the above listings actually did cache looking up only, and
> thus they should not be that slow.

I meant that still are a lot of `list's in the output, not that it
still was a bug. As I reported, it is quite fast now.

> before C-h H, you'll see logs from the font-backend (labeled
> "uniscribe-list:" or "w32font-list:" on Windows).

Yes, and after the buffer is displayed there's none when moving around.

    Juanma






^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist
  2009-01-26  8:00     ` Kenichi Handa
@ 2009-01-26 15:51       ` Chong Yidong
  0 siblings, 0 replies; 15+ messages in thread
From: Chong Yidong @ 2009-01-26 15:51 UTC (permalink / raw)
  To: Kenichi Handa; +Cc: 1990

Kenichi Handa <handa@m17n.org> writes:

> I found a bug in fontset_find_font in handling non-cons
> return value of fontset_get_font_group (it seems that I
> embugged it when I modified fontset.c largely last time).
>
> Your change surely fixes the bug, but it does unnecessary
> char-table lookup for the normal case (i.e. a font is
> found).  So, I think the following patch is better.
>
> If you agree, please install it.  I, at the moment, can't do
> cvs commit.

Installed, thanks.






^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2009-01-26 15:51 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-23  5:04 bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Chong Yidong
2009-01-23 14:00 ` Jason Rumney
2009-01-24 19:47   ` Chong Yidong
2009-01-24 21:50     ` Juanma Barranquero
2009-01-24 21:55       ` Chong Yidong
2009-01-24 22:06         ` Juanma Barranquero
2009-01-25  5:22       ` Jason Rumney
2009-01-25 11:57         ` Juanma Barranquero
2009-01-26 11:46           ` Kenichi Handa
2009-01-26 12:02             ` Juanma Barranquero
2009-01-26  8:00     ` Kenichi Handa
2009-01-26 15:51       ` Chong Yidong
  -- strict thread matches above, loose matches on Subject: below --
2009-01-22 13:22 Jason Rumney
2009-01-24 13:28 ` Juanma Barranquero
2009-01-24 14:02   ` Jason Rumney

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).