]> git.eshelyaron.com Git - emacs.git/commitdiff
(char_table_ascii): Check if the char table contents
authorKenichi Handa <handa@m17n.org>
Mon, 6 Jan 2003 13:26:04 +0000 (13:26 +0000)
committerKenichi Handa <handa@m17n.org>
Mon, 6 Jan 2003 13:26:04 +0000 (13:26 +0000)
is sub-char-table or not.
(char_table_set): Fix argument to char_table_ascii.
(char_table_set_range): Likewise.

src/chartab.c

index 919331f787888a13374b34e743bd786f977a4dc0..2b4c37755fa265f7be7f3c0dad53afa35ac0036d 100644 (file)
@@ -114,7 +114,11 @@ char_table_ascii (table)
   Lisp_Object sub;
 
   sub = XCHAR_TABLE (table)->contents[0];
+  if (! SUB_CHAR_TABLE_P (sub))
+    return sub;
   sub = XSUB_CHAR_TABLE (sub)->contents[0];
+  if (! SUB_CHAR_TABLE_P (sub))
+    return sub;
   return XSUB_CHAR_TABLE (sub)->contents[0];
 }
 
@@ -415,7 +419,7 @@ char_table_set (table, c, val)
        }
       sub_char_table_set (sub, c, val);
       if (ASCII_CHAR_P (c))
-       tbl->ascii = char_table_ascii (tbl);
+       tbl->ascii = char_table_ascii (table);
     }
   return val;
 }
@@ -472,7 +476,7 @@ char_table_set_range (table, from, to, val)
           i++, min_char += chartab_chars[0])
        sub_char_table_set_range (contents + i, 0, min_char, from, to, val);
       if (ASCII_CHAR_P (from))
-       tbl->ascii = char_table_ascii (tbl);
+       tbl->ascii = char_table_ascii (table);
     }
   return val;
 }