Subject: bug#11722: 24.1; cannot set-frame-font to a fontset

From: Jae-hyeon Park <[email-masked]>
Date: Fri, 15 Jun 2012 22:39:55 +0200

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

1) start emacs with:

    $ emacs -Q

2) define a fontset by evaluating in the scratch buffer:

    (create-fontset-from-ascii-font
     "-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1" nil "test")
    (set-fontset-font "fontset-test" 'korean-ksc5601
     "-daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0")

3) write some Korean letters in the scratch buffer, whose font will be
   set in the next steps

    ;; 쫄지마

4) set and check the frame font with:

    (set-frame-parameter nil 'font "fontset-test")
         => nil
    (frame-parameter nil 'font)
         => "-Misc-Fixed-normal-normal-normal-*-14-*-*-*-c-70-iso10646-1"
    (frame-parameter nil 'font-parameter)
         => "fontset-test"

5) alternatively, set and check the frame font with:

    (set-frame-font "fontset-test")
         => nil
    (frame-parameter nil 'font)
         => "-Misc-Fixed-normal-normal-normal-*-14-*-*-*-c-70-iso10646-1"
    (frame-parameter nil 'font-parameter)
         => "-misc-fixed-medium-r-normal--14-*-75-75-c-70-iso8859-1"

In emacs 23.3.1, both methods 4) and 5) work, and the "font-parameter"
frame-parameter is set to the same value by both methods.  In emacs
24.1, method 5) does not select the specified Korean font, and the
font-parameter has different values in 4) and 5).  One can notice that
the Korean characters look different after evaluating the first lines in
4) and 5).

In GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.3)
 of 2012-06-14 on aida
Windowing system distributor `The X.Org Foundation', version 11.0.11202000
Configured using:
 `configure '--prefix=/usr' '--build=x86_64-pc-linux-gnu'
 '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man'
 '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc'
 '--localstatedir=/var/lib' '--libdir=/usr/lib64'
 '--disable-dependency-tracking' '--program-suffix=-emacs-24'
 '--infodir=/usr/share/info/emacs-24'
 '--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/../../../../lib64'
 '--with-gameuser=games' '--without-compress-info'
 '--disable-maintainer-mode' '--without-hesiod' '--without-kerberos'
 '--without-kerberos5' '--with-gpm' '--with-dbus' '--with-gnutls'
 '--without-xml2' '--without-selinux' '--without-wide-int'
 '--with-sound' '--with-x' '--without-ns' '--without-gconf'
 '--without-gsettings' '--with-toolkit-scroll-bars' '--with-gif'
 '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm'
 '--without-imagemagick' '--with-xft' '--without-libotf'
 '--without-m17n-flt' '--with-x-toolkit=gtk3'
 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu'
 'CFLAGS=-march=native -O2 -pipe -O2' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common
 -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: POSIX
  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: Lisp Interaction

Minor modes in effect:
  show-paren-mode: t
  tooltip-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o r t - e m a <tab> <return>

Recent messages:
uim.el: starting uim-el-helper-agent... done
uim.el: starting uim-el-agent... done
Loading paren...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/usr/share/emacs/site-lisp/cjk-latex/thai-word hides /usr/share/emacs/24.1/lisp/language/thai-word

Features:
(shadow sort flyspell ispell mail-extr gnus-msg gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime password-cache dig mailcap gnus-sum
nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range gnus-win gnus gnus-ems nnheader gnus-util wid-edit
emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils printing
ps-print ps-def lpr paren cus-start cus-load comint regexp-opt
ansi-color ring reduce-mode reduce-run dbus xml uim-leim uim advice
help-fns advice-preload uim-helper uim-candidate uim-preedit uim-key
uim-util uim-debug uim-keymap uim-var uim-version hangul hanja-util
quail help-mode easymenu view korea-util site-gentoo tex-site auto-loads
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image fringe lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)