]> code.delx.au - gnu-emacs/blobdiff - src/casetab.c
(map_char_table): New arg SUBTABLE. Callers changed.
[gnu-emacs] / src / casetab.c
index 112910cc09c4960b78e358a3d7110181fb3755aa..9bec57f068ef989cb6418fb8fb3e4056d29fd78f 100644 (file)
@@ -159,7 +159,12 @@ set_case_table (table, standard)
   if (standard)
     Vascii_downcase_table = table;
   else
-    current_buffer->downcase_table = table;
+    {
+      current_buffer->downcase_table = table;
+      current_buffer->upcase_table = up;
+      current_buffer->case_canon_table = canon;
+      current_buffer->case_eqv_table = eqv;
+    }
 
   return table;
 }
@@ -209,6 +214,7 @@ init_casetab_once ()
 
   down = Fmake_char_table (Qcase_table, Qnil);
   Vascii_downcase_table = down;
+  XCHAR_TABLE (down)->purpose = Qcase_table;
 
   for (i = 0; i < 256; i++)
     XCHAR_TABLE (down)->contents[i] = (i >= 'A' && i <= 'Z') ? i + 040 : i;
@@ -234,7 +240,10 @@ syms_of_casetab ()
   Qcase_table_p = intern ("case-table-p");
   staticpro (&Qcase_table_p);
 
+  staticpro (&Vascii_canon_table);
   staticpro (&Vascii_downcase_table);
+  staticpro (&Vascii_eqv_table);
+  staticpro (&Vascii_upcase_table);
 
   defsubr (&Scase_table_p);
   defsubr (&Scurrent_case_table);