changeset 88584:f4f7b1532dc3

(Fdefine_charset_internal): Fix bug for the case of re-defining a charset. If the charset has :emacs-mule-id, setup emacs_mule_bytes.
author Kenichi Handa <handa@m17n.org>
date Tue, 21 May 2002 04:22:33 +0000
parents 516e1ece0477
children c7772f702227
files src/charset.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/charset.c	Mon May 20 19:10:41 2002 +0000
+++ b/src/charset.c	Tue May 21 04:22:33 2002 +0000
@@ -888,6 +888,7 @@
   if (charset.hash_index >= 0)
     {
       new_definition_p = 0;
+      id = XFASTINT (CHARSET_SYMBOL_ID (args[charset_arg_name]));
       HASH_VALUE (hash_table, charset.hash_index) = attrs;
     }
   else
@@ -903,11 +904,10 @@
 			 sizeof (struct charset) * charset_table_size));
 	}
       id = charset_table_used++;
-      ASET (attrs, charset_id, make_number (id));
       new_definition_p = 1;
     }
 
-
+  ASET (attrs, charset_id, make_number (id));
   charset.id = id;
   charset_table[id] = charset;
 
@@ -923,6 +923,8 @@
   if (charset.emacs_mule_id >= 0)
     {
       emacs_mule_charset[charset.emacs_mule_id] = CHARSET_FROM_ID (id);
+      if (charset.emacs_mule_id < 0xA0)
+	emacs_mule_bytes[charset.emacs_mule_id] = charset.dimension + 1;
       if (new_definition_p)
 	Vemacs_mule_charset_list = nconc2 (Vemacs_mule_charset_list,
 					   Fcons (make_number (id), Qnil));