Subject: 27.0.60; ordering of fonts in fontset is ignored

From: [email-masked]
Date: Tue, 18 Feb 2020 22:13:47 +0900

If font list in fontset includes the font for ASCII,
the ordering may be ignored and the font for ASCII is used prior to
front fonts.

I tried to setup fontset to display "MS Gothic" as a primary font,
and "SimHei" as a secondary font, except for ASCII characters.
And "SimHei" is used for ASCII characters.
("MS Gothic" has YEN SIGN glyph for #x5C(\).)

Evaluating the form below, every character is displayed with "SimHei"
if glyphs are defined in both "SImHei" and "MS Gothic".
For example, most of CJK Ideographs are displayed with "SimHei".
"MS Gothic" is not used between U+3400 and U+9FA5.

(let* ((ascii "SimHei")
       (primary "MS Gothic")
       (secondary ascii))
  (setq use-default-font-for-symbols nil)
  (set-frame-font ascii)
  (set-fontset-font nil '(#x80 . #x10FFFF) primary)
  (set-fontset-font nil '(#x80 . #x10FFFF) secondary nil 'append))

In GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32)
 of 2019-12-29 built on CIRROCUMULUS
Repository revision: 21c3020fcec0a32122d2680a391864a75393031b
Repository branch: emacs-27
Windowing system distributor 'Microsoft Corp.', version 10.0.18363
System Description: Microsoft Windows 10 Pro (v10.0.1909.18363.657)

Recent messages:

Configured using:
 'configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install -C 'CFLAGS=-O2 -static -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2
HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-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
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr term/bobcat emacsbug message rmc puny dired
dired-loaddefs format-spec rfc822 mml easymenu mml-sec password-cache
epa derived epg epg-config gnus-util rmail rmail-loaddefs
text-property-search time-date subr-x seq byte-opt gv bytecomp
byte-compile cconv mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils japan-util tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core term/tty-colors frame
minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
threads w32notify w32 lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 50170 10170)
 (symbols 48 6076 1)
 (strings 32 16941 1597)
 (string-bytes 1 526852)
 (vectors 16 10747)
 (vector-slots 8 209005 13172)
 (floats 8 22 43)
 (intervals 56 331 0)
 (buffers 1000 12))