(char_charset): Return NULL if the arg charset_list is

specified and C doesn't belong to any of them.
This commit is contained in:
Kenichi Handa
2008-06-03 04:24:04 +00:00
parent 6459e35e90
commit 8a1816bb4a
2 changed files with 11 additions and 1 deletions

View File

@@ -1,3 +1,8 @@
2008-06-03 Kenichi Handa <handa@m17n.org>
* charset.c (char_charset): Return NULL if the arg charset_list is
specified and C doesn't belong to any of them.
2008-06-02 Chip Coldwell <coldwell@redhat.com>
* font.c (font_pixel_size): Don't take cdr of an integer.

View File

@@ -1813,8 +1813,12 @@ char_charset (c, charset_list, code_return)
Lisp_Object charset_list;
unsigned *code_return;
{
int maybe_null = 0;
if (NILP (charset_list))
charset_list = Vcharset_ordered_list;
else
maybe_null = 1;
while (CONSP (charset_list))
{
@@ -1832,7 +1836,8 @@ char_charset (c, charset_list, code_return)
&& EQ (charset_list, Vcharset_non_preferred_head))
return CHARSET_FROM_ID (charset_unicode);
}
return (c <= MAX_5_BYTE_CHAR ? CHARSET_FROM_ID (charset_emacs)
return (maybe_null ? NULL
: c <= MAX_5_BYTE_CHAR ? CHARSET_FROM_ID (charset_emacs)
: CHARSET_FROM_ID (charset_eight_bit));
}