Subject: 23.0.92; x-list-fonts no longer gives correct result - substitutes * for fixed font size

From: "Drew Adams" <[email-masked]>
Date: Wed, 22 Apr 2009 10:03:30 -0700

I have this defcustom, which I use to choose a small font:
 
(defcustom palette-font
  (and window-system
       (or (car (x-list-fonts
  "-*-Courier-*-*-*-*-5-*-*-*-*-*-iso8859-1" nil nil 1)) ; 1
           (car (x-list-fonts "-*-fixed-*-*-*-*-5-*-*-*-*-*-iso8859-1"
  nil nil 1)) ; 2
           (car (x-list-fonts
  "-*-Terminal-*-*-*-*-5-*-*-*-*-*-iso8859-1" nil nil 1)) ; 3
           (car (x-list-fonts "-*-*-*-*-*-*-5-*-*-*-*-*-iso8859-1" nil
  nil 1)))) ;4
  "...")
 
[Ignore the fact that perhaps (display-graphic-p) should be used in
place of window-system.]
 
In Emacs 23, the x-list-fonts sexps return these values (in MS
Windows XP with the fonts I have on my laptop):
 
1. ("-outline-Courier-normal-i-normal-normal-5-37-96-96-c-*-iso8859-1")
2. nil
3. nil
4. ("-outline-Souvenir Lt
BT-normal-i-normal-normal-5-37-96-96-p-*-iso8859-1")
 
In Emacs 23, these are the values:
 
1. ("-outline-Courier-bold-normal-normal-mono-*-*-*-*-c-*-iso8859-1")
2. nil
3. nil
4. ("-outline-Lucida Sans
Typewriter-bold-normal-normal-sans-*-*-*-*-c-*-iso8859-1")
 
The first difference to notice is #4: a completely different font
family is used. Why should this be? Anyway, I don't really have a
problem with this.
 
The problem is that the font size is not correct: * instead of a real
font size.  The whole point of this defcustom is to try to find a
default value for the option that provides a tiny font that the user
has available. It tries to match various fonts of size 5, until it
finds a match.
 
In Emacs 23, this size info seems to be ignored, and the generic * is
used. That has the result of using a very large font (for this
application, which needs a tiny font). Which defeats the purpose of
the defcustom.

In GNU Emacs 23.0.92.1 (i386-mingw-nt5.1.2600)
 of 2009-03-30 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'