# HG changeset patch # User Kenichi Handa # Date 899706835 0 # Node ID c771a25f6f8ccfed5346f86c3cfd958ec75e8424 # Parent 0931de7fa601054d3e4c18d4c03fbfe6a3aee69b (Fset_char_table_default): Check only if the charset of the arg CH is in the valid range or not. Handle the case that CH is a generic character for composite characters. diff -r 0931de7fa601 -r c771a25f6f8c src/fns.c --- a/src/fns.c Mon Jul 06 01:54:21 1998 +0000 +++ b/src/fns.c Mon Jul 06 06:33:55 1998 +0000 @@ -1998,15 +1998,19 @@ c = XINT (ch); SPLIT_NON_ASCII_CHAR (c, charset, code1, code2); - if (! CHARSET_DEFINED_P (charset)) - invalid_character (c); + + /* Since we may want to set the default value for a character set + not yet defined, we check only if the character set is in the + valid range or not, instead of it is already defined or not. */ + if (! CHARSET_VALID_P (charset)) + invalid_character (c); if (charset == CHARSET_ASCII) return (XCHAR_TABLE (char_table)->defalt = value); /* Even if C is not a generic char, we had better behave as if a generic char is specified. */ - if (CHARSET_DIMENSION (charset) == 1) + if (charset == CHARSET_COMPOSITION || CHARSET_DIMENSION (charset) == 1) code1 = 0; temp = XCHAR_TABLE (char_table)->contents[charset + 128]; if (!code1)