Function: char-from-name
char-from-name is a byte-compiled function defined in mule-cmds.el.gz.
Signature
(char-from-name STRING &optional IGNORE-CASE)
Documentation
Return a character as a number from its Unicode name STRING.
If optional IGNORE-CASE is non-nil, ignore case in STRING. Return nil if STRING does not name a character.
Probably introduced at or before Emacs version 26.1.
Source Code
;; Defined in /usr/src/emacs/lisp/international/mule-cmds.el.gz
(defun char-from-name (string &optional ignore-case)
"Return a character as a number from its Unicode name STRING.
If optional IGNORE-CASE is non-nil, ignore case in STRING.
Return nil if STRING does not name a character."
(or (gethash (if ignore-case (upcase string) string) (ucs-names))
(let ((minus (string-match-p "-[0-9A-F]+\\'" string)))
(when minus
;; Parse names like "VARIATION SELECTOR-17" and "CJK
;; COMPATIBILITY IDEOGRAPH-F900" that are not in ucs-names.
(ignore-errors
(let* ((case-fold-search ignore-case)
(vs (string-match-p "\\`VARIATION SELECTOR-" string))
(minus-num (string-to-number (substring string minus)
(if vs 10 16)))
(vs-offset (if vs (if (< minus-num -16) #xE00EF #xFDFF) 0))
(code (- vs-offset minus-num))
(name (get-char-code-property code 'name)))
(when (eq t (compare-strings string nil nil name nil nil
ignore-case))
code)))))))