Subject: Re: Emacs 20.3.5.2 pretest - problem solved

From: Jason Rumney <[email-masked]>
Date: 31 Jan 1999 01:36:09 +1300

In article <[email-masked]>, [email-masked] (Theodore Jump) writes:

    > In the lisp\term\w32-win.el that you have in the 20.3.5.2 kit, o/a line 710 in
    > function (w32-create-initial-fontsets) there is the following line:

    > 	      (w32-create-initial-fontsets)))

    > In the lisp\term\w32-win.el that is in the base 20.3.5.1 kit, this line has the
    > following:

    >       ;; This cannot be run yet, as creating fontsets requires a
    >       ;; Window to be initialised so the fonts can be listed.
    >       ;; Add it to a hook so it gets run later.
    >       (add-hook 'before-init-hook 'w32-create-initial-fontsets)

    > I replaced your line with the above and *bingo* - no more problem.

It seems a bug that was supposed to be fixed is not fixed on all
systems, so the before-init-hook workaround will have to stay.

    > On a related note, the defvar of w32-standard-fontset-spec is
    > severly trimmed in your version of w32-win.el, the base has:

    > (defvar w32-standard-fontset-spec
    >  "-*-Courier New-normal-r-*-*-13-*-*-*-c-*-fontset-standard,
    >  latin-iso8859-2:-*-Courier New CE-normal-r-*-*-13-*-*-*-c-*-iso8859-2,
    >  latin-iso8859-3:-*-Courier New Tur-normal-r-*-*-13-*-*-*-c-*-iso8859-3,
    >  latin-iso8859-4:-*-Courier New Baltic-normal-r-*-*-13-*-*-*-c-*-iso8859-4,
    >  cyrillic-iso8859-5:-*-Courier New Cyr-normal-r-*-*-13-*-*-*-c-*-koi8-r,
    >  greek-iso8859-7:-*-Courier New Greek-normal-r-*-*-13-*-*-*-c-*-iso8859-7,
    >  latin-iso8859-9:-*-Courier New Tur-normal-r-*-*-13-*-*-*-c-*-iso8859-9"

There have been a couple of changes to the fontset and font support
code in 20.3.5.1 and 20.3.5.2.

The first is that the wildcard matching was improved, so Emacs can
generally find fonts for itself now. In 20.3.3.1 the fonts needed to
be listed seperately to be included in the fontset.

The other change is that Emacs now uses a newer API call where
possible to list fonts. This results in a more complete list under NT
4.0 and Windows 9x, but has the side-effect that the " CE", " Tur" etc
get dropped from the fonts that have them. Since the international
font names now vary with versions of the operating system, it is
better to let Emacs find them.

I know that Emacs picks fonts other than "Courier New" under certain
conditions, but after checking with Kenichi Handa (who wrote much of
the general MULE support), this is by design rather than bug. I think
the general idea of fontset-standard is to provide a fontset that
covers as many charsets as possible for occasional use. For a
consistant looking fontset, you may have to define it yourself.
(`create-fontset-from-ascii-font' is easiest to use for a single
alternative charset, for more charsets it is necessary to use
`create-fontset-from-fontset-spec'.)

-- 
Jason Rumney <[email-masked]>