Subject: 30.0.91; CJK Font Rendering Behavior Changed

From: Tomohisa Kuranari <[email-masked]>
Date: Thu, 19 Sep 2024 23:50:58 +0900

This may not be a bug, but I have noticed different behavior compared to
Emacs 29.4.

I found that the behavior changed when the Android port was introduced, but
I haven't been able to pinpoint the exact cause.
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=c71a520d1da636a722cf87b46534ca3b5aafbc7b

## Steps to Reproduce
1. Start Emacs with emacs -Q.
2. Evaluate the following in the scratch buffer:

;; 29.4
(face-font 'default nil ?元)
"-*-Hiragino Sans-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"
(face-font 'default nil ?你)
"-*-Hiragino Sans-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"
(face-font 'default nil ?안)
"-*-Apple SD Gothic Neo-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"

;; 30.0.91
(face-font 'default nil ?元)
"-*-Arial Unicode MS-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"
(face-font 'default nil ?你)
"-*-Arial Unicode MS-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"
(face-font 'default nil ?안)
"-*-Arial Unicode MS-regular-normal-normal-*-12-*-*-*-p-0-iso10646-1"

## Workaround
Specify the font explicitly
```
(set-fontset-font nil 'japanese-jisx0208
                  (font-spec :family "Hiragino Sans"))
```

In GNU Emacs 30.0.91 (build 1, x86_64-apple-darwin23.1.0, NS
 appkit-2487.20 Version 14.1 (Build 23B74)) of 2024-09-14 built on
 kuranariMacBook-Pro.local
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.1

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus@30/30.0.91/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus@30/30.0.91 --with-xml2
 --with-gnutls --without-compress-install --without-dbus
 --without-imagemagick --with-modules --with-rsvg --with-webp --with-ns
 --disable-ns-self-contained 'CFLAGS=-O2 -DFD_SETSIZE=10000
 -DDARWIN_UNLIMITED_SELECT''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS
PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP XIM ZLIB

Important settings:
  value of $LANG: ja_JP.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  which-key-mode: t
  pixel-scroll-precision-mode: t
  recentf-mode: t
  global-git-gutter-mode: t
  git-gutter-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  vertico-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  override-global-mode: t
  puni-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(mailalias mailclient textsec uni-scripts idna-mapping uni-confusable
textsec-check qp ispell shadow sort mail-extr puni pulse color emacsbug
message yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils project consult vc-git
diff-mode track-changes vc-dispatcher which-key org-agenda org-element
org-persist xdg org-id org-element-ast inline avl-tree generator
org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src sh-script smie treesit executable ob-comint org-pcomplete
pcomplete comint ansi-osc ansi-color org-list org-footnote org-faces
org-entities time-date noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-cycle org-table org-keys oc org-loaddefs find-func
cal-menu calendar cal-loaddefs ol rx org-fold org-fold-core org-compat
org-macs format-spec bookmark text-property-search time pixel-scroll
cua-base ring dashboard dashboard-widgets recentf tree-widget ffap
thingatpt git-gutter writeroom-mode visual-fill-column cape corfu
orderless marginalia vertico compat delsel cus-edit pp wid-edit
autorevert filenotify cus-load finder-inf edmacro kmacro
use-package-bind-key bind-key use-package-ensure cl-extra help-mode
use-package-core avy-autoloads cape-autoloads corfu-autoloads
dashboard-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads git-gutter-autoloads marginalia-autoloads
orderless-autoloads org-contrib-autoloads org-modern-autoloads
puni-autoloads easy-mmode vertico-autoloads info
writeroom-mode-autoloads visual-fill-column-autoloads package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs icons password-cache json
subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib
japan-util rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 423228 149081) (symbols 48 27755 15)
 (strings 32 147709 4935) (string-bytes 1 3346886) (vectors 16 58280)
 (vector-slots 8 1414362 216992) (floats 8 413 1650)
 (intervals 56 3577 542) (buffers 992 20))

-- 
Tomohisa Kuranari
Email: [email-masked]