Subject: bug#2824: 23.0.91; font-selection weirdness with
`set-frame-attribute' of default face

In article <87eiwftbuu.fsf@xxxxxxxxxxxxxx>, Miles Bader <miles@xxxxxxx> writes:

> Emacs seems to use different fonts to display ascii vs. non-ascii
> characters when one uses `set-frame-attribute' to set the default font.

I can't reproduce the problem with the latest code. It may
be because of the fix I installed last night. Does your
Emacs have this change?

2009-03-30 Kenichi Handa <handa@xxxxxxxx>

* fontset.c (fontset_from_font): Specify only registry in a
font-spec for all characters supported by that registry.

If not yet, could you please try again with the latest code?

Kenichi Handa

> To reproduce (using X):

> (1) In a shell, evaluate the following commands:

> xrdb -remove
> echo '*Font: Dejavu Sans Mono-11' > /tmp/.Xdefaults
> echo '(set-face-attribute '\''default nil :family "Liberation Mono")'
> > /tmp/.emacs
> HOME=/tmp emacs -no-splash -eval '(insert "cafÃ")'&

> (2) Position the cursor over the "c" in "cafÃ", and use C-u C-x =

> Notice it says that the font used is "Liberation Mono", which is
> the correct default font.

> (3) Position the cursor over the "Ã" in "cafÃ", and use C-u C-x =

> Notice that it says the font used is "Dejavu Sans Mono", which is
> _not_ the correct default font, but rather was the startup font.

> This problem only seems to occur if one uses `set-face-attribute' to set
> the default font. If one uses `set-frame-font' (etc), it seems to work
> correctly; e.g., try using the shell command:

> echo '(set-frame-font "Liberation Mono")' > /tmp/.emacs

> and then start emacs as in the original recipe; the "Ã" should
> correctly be displayed using the current default font.

> Thanks,

> -Miles

> In GNU Emacs (x86_64-unknown-linux-gnu, GTK+ Version 2.16.0)
> of 2009-03-30 on catnip
> Windowing system distributor `The X.Org Foundation', version 11.0.10599902
> 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_US.UTF-8
> value of $XMODIFIERS: nil
> locale-coding-system: utf-8-unix
> default-enable-multibyte-characters: t

> Major mode: Text

> Minor modes in effect:
> rcirc-track-minor-mode: t
> tooltip-mode: t
> mouse-wheel-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

> Recent input:
> <help-echo> C-x g C-x C-v . e m a c s <return> <escape>
> > C-x C-v . e m a SPC ? . SPC C-g C-x b a s d f <return>
> c a f e <backspace> C-x 8 ' e C-b C-u C-x = C-b C-u
> C-x = = <backspace> C-f C-n <return> <C-down-mouse-3>
> <options> <menu-set-font> C-p C-x = C-u C-x = <escape>
> x r e p o r SPC <return>

> Recent messages:
> Checking new news...done
> Mark set
> Making completion list... [2 times]
> xding
> Quit
> Type C-x 1 to delete the help window.
> Char: Ã (233, #o351, #xe9, file ...) point=4 of 4 (75%) column=3
> Char: f (102, #o146, #x66) point=3 of 4 (50%) column=2
> xding
> Char: c (99, #o143, #x63) point=1 of 5 (0%) column=0 [2 times]

> --
> Brain, n. An apparatus with which we think we think.