changeset 22701:c771a25f6f8c

(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.
author Kenichi Handa <handa@m17n.org>
date Mon, 06 Jul 1998 06:33:55 +0000
parents 0931de7fa601
children 1e265354a43a
files src/fns.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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)