Subject: bug#65997: 29.1; ?\N{char_name} reference is wrong

From: [email-masked]
Date: Fri, 15 Sep 2023 22:02:37 +0900

S-exps in the form of ?\N{char_name} return wrong values for some
characters.
The S-exp below inserts a whole list of such characters.

(dotimes (u (1+ (max-char 'ucs)))
  (let* ((name (get-char-code-property u 'name)))
    (when (and name (not (<= #xD800 u #xDFFF)))
      (let ((u2 (condition-case err
                    (read (format "?\\N{%s}" name))
                  (error 0))))
        (unless (eq u u2)
          (insert (format "%X\t%s\t%X\t%s\n" u name u2
                          (if (= 0 u2)
                              "error"
                            (get-char-code-property u2 'name)))))))))

output(TANGUT COMPONENTs are omitted):

21D	LATIN SMALL LETTER YOGH	292	LATIN SMALL LETTER EZH
438	CYRILLIC SMALL LETTER I	456	CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
44D	CYRILLIC SMALL LETTER E	454	CYRILLIC SMALL LETTER UKRAINIAN IE
3131	HANGUL LETTER KIYEOK	314B	HANGUL LETTER KHIEUKH
3142	HANGUL LETTER PIEUP	314D	HANGUL LETTER PHIEUPH
3148	HANGUL LETTER CIEUC	314A	HANGUL LETTER CHIEUCH
3200	PARENTHESIZED HANGUL KIYEOK	320A	PARENTHESIZED HANGUL KHIEUKH
3205	PARENTHESIZED HANGUL PIEUP	320C	PARENTHESIZED HANGUL PHIEUPH
3208	PARENTHESIZED HANGUL CIEUC	3209	PARENTHESIZED HANGUL CHIEUCH
3260	CIRCLED HANGUL KIYEOK	326A	CIRCLED HANGUL KHIEUKH
3265	CIRCLED HANGUL PIEUP	326C	CIRCLED HANGUL PHIEUPH
3268	CIRCLED HANGUL CIEUC	3269	CIRCLED HANGUL CHIEUCH
FFA1	HALFWIDTH HANGUL LETTER KIYEOK	FFBB	HALFWIDTH HANGUL LETTER KHIEUKH
FFB2	HALFWIDTH HANGUL LETTER PIEUP	FFBD	HALFWIDTH HANGUL LETTER PHIEUPH
FFB8	HALFWIDTH HANGUL LETTER CIEUC	FFBA	HALFWIDTH HANGUL LETTER CHIEUCH
16FE4	KHITAN SMALL SCRIPT FILLER	0	error
16FF0	VIETNAMESE ALTERNATE READING MARK CA	0	error
16FF1	VIETNAMESE ALTERNATE READING MARK NHAY	0	error
18800	TANGUT COMPONENT-001	0	error
...
18AFF	TANGUT COMPONENT-768	0	error
1B132	HIRAGANA LETTER SMALL KO	0	error

In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on
 AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3448)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation=aot
 --without-compress-install --with-tree-sitter 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: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  highlight-changes-visible-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-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
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(qp rect misearch multi-isearch comp comp-cstr warnings icons rx
emoji-labels emoji multisession sqlite transient format-spec edmacro
kmacro cl-extra gnutls network-stream nsm mailalias smtpmail textsec
uni-scripts url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source
cl-seq eieio eieio-core cl-macs json map url-vars idna-mapping
ucs-normalize uni-confusable textsec-check cl-print byte-opt gv bytecomp
byte-compile debug backtrace find-func hilit-chg wid-edit thingatpt
help-fns radix-tree help-mode pp shadow sort mail-extr emacsbug message
mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
password-cache epa derived epg rfc6068 epg-config gnus-util
text-property-search time-date subr-x 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
term/bobcat japan-util 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 343615 63051)
 (symbols 48 17876 4)
 (strings 32 70082 16005)
 (string-bytes 1 1428826)
 (vectors 16 57019)
 (vector-slots 8 1745292 147352)
 (floats 8 69 384)
 (intervals 56 10985 3149)
 (buffers 984 19))