Subject: bug#17532: 24.4.50; Options > `set-frame-font' does not work as documented

From: Drew Adams <[email-masked]>
Date: Mon, 19 May 2014 13:34:52 -0700 (PDT)

emacs -Q

M-: (setq default-frame-alist '
 ((font . "-outline-Lucida
 Console-normal-normal-normal-mono-3-*-*-*-c-*-iso8859-1")))

or some other font that is different from the default emacs -Q font.

Choose menu item Options > Set Default Font..., and choose yet another
font.

C-x 4 d RET ; or another command to display another buffer

The newly displayed buffer's font is not the font you chose using Set
Default Font.

Dunno whether the behavior is wrong.  It's maybe good that a users
current value of `default-frame-alist' be respected.  But maybe
`set-frame-font' (called by `menu-set-font', which is Set Default Font)
should change the value of `default-frame-alist' (or maybe not).

In any case, the doc for `set-frame-font' and the description of `Set
Default Font' tell users that the font specified will be used not only
for all current frames but also for future frames, and that it will act
as the default font from now on.

I hesitate to open this can of worms, for fear that you might make some
crazy "improvement" that changes the behavior negatively.  But at least
the doc should reflect the real behavior.  Users should not be led to
expect that the font will affect new frames when it will not do so.

Perhaps the correct description is that it will do that if
`default-frame-alist' is nil.  (Of course then there are other frame
alist options, or at least there were. ;-)).  Whatever the behavior is,
the doc etc. should be updated to reflect it and not lead users astray.

Note that the doc here includes (emacs) `Fonts'.

In GNU Emacs 24.4.50.1 (i686-pc-mingw32)
 of 2014-05-17 on ODIEONE
Bzr revision: 117119 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/snapshot/trunk
 --enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'
 LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
 -Ic:/Devel/emacs/include''