Function: char-charset
char-charset is a function defined in charset.c.
Signature
(char-charset CH &optional RESTRICTION)
Documentation
Return the charset of highest priority that contains CH.
ASCII characters are an exception: for them, this function always
returns ascii.
If optional 2nd arg RESTRICTION is non-nil, it is a list of charsets
from which to find the charset. It may also be a coding system. In
that case, find the charset from what supported by that coding system.
Probably introduced at or before Emacs version 20.1.
Source Code
// Defined in /usr/src/emacs/src/charset.c
{
struct charset *charset;
CHECK_CHARACTER (ch);
if (NILP (restriction))
charset = CHAR_CHARSET (XFIXNUM (ch));
else
{
if (CONSP (restriction))
{
int c = XFIXNAT (ch);
for (; CONSP (restriction); restriction = XCDR (restriction))
{
struct charset *rcharset;
CHECK_CHARSET_GET_CHARSET (XCAR (restriction), rcharset);
if (ENCODE_CHAR (rcharset, c) != CHARSET_INVALID_CODE (rcharset))
return XCAR (restriction);
}
return Qnil;
}
restriction = coding_system_charset_list (restriction);
charset = char_charset (XFIXNUM (ch), restriction, NULL);
if (! charset)
return Qnil;
}
return (CHARSET_NAME (charset));
}