changeset 100019:b25e28d70fad

(Fdefine_charset_internal): After calculating min_char, max_char, and fastmap, copy the charset structure again. (encode_char): Fix the previous change.
author Kenichi Handa <handa@m17n.org>
date Sat, 29 Nov 2008 01:45:23 +0000
parents 811c2c99eed5
children 14eeff681da3
files src/charset.c
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/charset.c	Fri Nov 28 23:54:23 2008 +0000
+++ b/src/charset.c	Sat Nov 29 01:45:23 2008 +0000
@@ -1199,7 +1199,10 @@
   charset_table[id] = charset;
 
   if (charset.method == CHARSET_METHOD_MAP)
-    load_charset (&charset, 0);
+    {
+      load_charset (&charset, 0);
+      charset_table[id] = charset;
+    }
 
   if (charset.iso_final >= 0)
     {
@@ -1855,8 +1858,11 @@
 
       encoder = CHARSET_ENCODER (charset);
       if (! CHAR_TABLE_P (CHARSET_ENCODER (charset)))
-	load_charset (charset);
-      if (CHAR_TABLE_P (CHARSET_ENCODER (charset)))
+	{
+	  load_charset (charset, 2);
+	  encoder = CHARSET_ENCODER (charset);
+	}
+      if (CHAR_TABLE_P (encoder))
 	{
 	  val = CHAR_TABLE_REF (encoder, c);
 	  if (NILP (val))