Subject: bug#72188: closed (Re: bug#72188: 29.2; Won't render U+2F75 kangxi radical character)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 04 Aug 2024 07:25:01 +0000

Your bug report

#72188: 29.2; Won't render U+2F75 kangxi radical character

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
72188: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72188
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#72188: 29.2; Won't render U+2F75 kangxi radical character
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sun, 04 Aug 2024 10:24:04 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Cc: [email-masked]
> Date: Sat, 20 Jul 2024 09:51:32 +0300
> From: Eli Zaretskii <[email-masked]>
> 
> > Date: Fri, 19 Jul 2024 12:17:30 -0600
> > From:  Robert Nikander via "Bug reports for GNU Emacs,
> >  the Swiss army knife of text editors" <[email-masked]>
> > 
> > 
> > I'm trying to include a certain unicode character in some files. The 
> > character is U+2F75 - KANGXI RADICAL BAMBOO: ⽵.
> > 
> > Even though my Windows system has fonts that render that glyph, Emacs
> > will not use them, and it renders the character as the box with the
> > "2F75" in it. If if my default face doesn't have the glyph,
> > shouldn't Emacs fall back on a font that does have the glyph, when it
> > hits that unicode character?
> 
> It should, yes.  However, the Emacs setup for CJK fonts is very
> complex, and we don't currently have experts on board to understand
> why it doesn't work on MS-Windows.  So for now, you will have to put
> the below somewhere in your init file:
> 
>   (set-fontset-font t 'han
>                       '("Microsoft YaHei" . "iso10646-1") nil 'append)
> 
> to have these characters covered.
> 
> If this works for you, it is currently all we can do for this
> situation.  (And before you ask: we cannot have the above by default
> in Emacs OOTB because we don't want to promote non-free fonts that
> Windows provides.)

No further comments, so I'm now closing this bug.

Meanwhile, I've installed several small bugfixes on the master branch,
which will hopefully improve the search and use of Han fonts on
MS-Windows in Emacs 31.

Subject: 29.2; Won't render U+2F75 kangxi radical character
From: Robert Nikander <[email-masked]>
To: [email-masked]
Date: Fri, 19 Jul 2024 12:17:30 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

I'm trying to include a certain unicode character in some files. The 
character is U+2F75 - KANGXI RADICAL BAMBOO: ⽵.

Even though my Windows system has fonts that render that glyph, Emacs
will not use them, and it renders the character as the box with the
"2F75" in it. If if my default face doesn't have the glyph,
shouldn't Emacs fall back on a font that does have the glyph, when it
hits that unicode character? Someone suggested I need a _monospace_ font
that has the glyph, but I have that as well. I downloaded this font for
example:

https://fonts.google.com/specimen/LXGW+WenKai+Mono+TC/glyphs?preview.text=Bambu%20radical:%20%E2%BD%B5&classification=Monospace

Windows "character map" app shows that it has the 2F75 character. But 
Emacs does not use it and renders the box instead. Is this a bug?

When I run `describe-char` on a normal character in my files, I see
this, among other lines. So this is my default face normally. It does
not have the glyph.

         display: by this font (glyph code):
 
harfbuzz:-outline-Consolas-regular-normal-normal-mono-27-*-*-*-c-*-iso8859-1 
(#x05)

-----

In GNU Emacs 29.2 (build 2, x86_64-w64-mingw32) of 2024-02-01 built on
  AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.22631
System Description: Microsoft Windows 10 Home (v10.0.2009.22631.3880)

Configured using:
  'configure --with-modules --without-dbus --with-native-compilation=aot
  --without-compress-install --with-tree-sitter --with-sqlite3
  CFLAGS=-O2'

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

(NATIVE_COMP present but libgccjit not available)

Important settings:
   value of $LANG: ENU
   locale-coding-system: cp1252

Major mode: Org

Minor modes in effect:
   org-bullets-mode: t
   org-indent-mode: t
   shell-dirtrack-mode: t
   ivy-mode: t
   desktop-save-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   show-paren-mode: t
   electric-indent-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
   line-number-mode: t
   visual-line-mode: t
   transient-mark-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t

Load-path shadows:
c:/Users/rober/AppData/Roaming/.emacs.d/elpa/transient-20231203.1803/transient 
hides c:/Program Files/Emacs/emacs-29.2/share/emacs/29.2/lisp/transient

Features:
(shadow sort mail-extr emacsbug misearch multi-isearch descr-text
face-remap sql view js c-ts-common imenu yasnippet cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
logview datetime dired-aux sh-script smie executable mule-util
org-bullets org-indent oc-basic ol-w3m org-tempo tempo ol-rmail ol-mhe
ol-irc ol-info org-habit ol-gnus nnselect gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start
gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time
gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml
mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader gnus-win ol-eww eww url-queue shr
pixel-fill kinsoku url-file svg xml dom mm-url gnus nnheader gnus-util
mail-utils range ol-doi org-link-doi ol-docview doc-view jka-compr
image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb
vc-git diff-mode vc-dispatcher org-download org-attach url-http url-auth
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw
nsm puny async org-extra-emphasis htmlfontify cus-edit wid-edit ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda
ox-html table ox-ascii ox-publish ox org-element org-persist xdg org-id
org-refile avl-tree org org-macro org-pcomplete org-list org-footnote
org-faces org-entities time-date ob-shell shell pcomplete ob-python
python pcase treesit ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp
ob-comint ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx
org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu
calendar cal-loaddefs org-version org-compat org-macs slime apropos
compile text-property-search etags fileloop generator xref project
arc-mode archive-mode noutline outline icons pp comint ansi-osc
ansi-color hyperspec thingatpt extmap bindat cap-words superword subword
ivy derived delsel ring ivy-faces ivy-overlay colir color cl-extra
help-mode use-package-ensure use-package-core desktop frameset
magit-autorevert easy-mmode autorevert filenotify magit-git
magit-section format-spec cursor-sensor compat magit-utils crm dash
cus-load ivy-autoloads logview-autoloads datetime-autoloads
extmap-autoloads lsp-mode-autoloads ht-autoloads f-autoloads
lv-autoloads magit-autoloads git-commit-autoloads
magit-section-autoloads dash-autoloads markdown-mode-autoloads
org-bullets-autoloads org-download-autoloads async-autoloads s-autoloads
slime-autoloads macrostep-autoloads spinner-autoloads
transient-autoloads with-editor-autoloads info compat-autoloads
yasnippet-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 password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode 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 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 w32notify w32 lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 1090165 117598)
  (symbols 48 51436 2)
  (strings 32 214852 11603)
  (string-bytes 1 6603294)
  (vectors 16 91500)
  (vector-slots 8 2704141 82400)
  (floats 8 608 393)
  (intervals 56 45946 468)
  (buffers 984 67))