Add 'char-to-name' convenience function

* lisp/international/mule-cmds.el (char-to-name): New function.  This is
the inverse of 'char-from-name'.
* doc/lispref/nonascii.texi (Character Codes): Document it.
* etc/NEWS: Announce it.
This commit is contained in:
Robert Pluim 2024-06-07 12:05:34 +02:00
parent cc30758eed
commit 3a4cf1aa1e
3 changed files with 16 additions and 0 deletions

View file

@ -435,6 +435,11 @@ This function returns @code{nil} if @var{string} does not name a character.
@end example
@end defun
@defun char-to-name char
This function returns the Unicode name of @var{char}. Returns
@code{nil} if @var{char} is not a character or has no Unicode name.
@end defun
@defun get-byte &optional pos string
This function returns the byte at character position @var{pos} in the
current buffer. If the current buffer is unibyte, this is literally

View file

@ -2244,6 +2244,10 @@ it returns a short "unique" string that identifies the function.
In either case, the string is propertized so clicking on it gives
further details.
** New function 'char-to-name'.
This is a convenience function to return the Unicode name of a char (if
it has one).
** New function 'cl-type-of'.
This function is like 'type-of' except that it sometimes returns
a more precise type. For example, for nil and t it returns 'null'

View file

@ -3183,6 +3183,13 @@ on encoding."
(script (and char (aref char-script-table char))))
(if script (symbol-name script) "ungrouped"))))
(defun char-to-name (char)
"Return the Unicode name for CHAR, if it has one, else nil.
Return nil if CHAR is not a character."
(and (characterp char)
(or (get-char-code-property char 'name)
(get-char-code-property char 'old-name))))
(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.