]> code.delx.au - gnu-emacs/blobdiff - src/casetab.c
(__mktime_internal): Merge changes from gnulib
[gnu-emacs] / src / casetab.c
index de504e2e3352074baf8eefe0ea7cd4441b4dfa13..9f9c4f8c5b2184222e5b4edc7e627c7387874138 100644 (file)
@@ -71,7 +71,7 @@ check_case_table (obj)
   while (tem = Fcase_table_p (obj), NILP (tem))
     obj = wrong_type_argument (Qcase_table_p, obj);
   return (obj);
-}   
+}
 
 DEFUN ("current-case-table", Fcurrent_case_table, Scurrent_case_table, 0, 0, 0,
        doc: /* Return the case table of the current buffer.  */)
@@ -138,8 +138,8 @@ set_case_table (table, standard)
   if (NILP (up))
     {
       up = Fmake_char_table (Qcase_table, Qnil);
-      map_char_table (set_identity, Qnil, table, up, 0, indices);
-      map_char_table (shuffle, Qnil, table, up, 0, indices);
+      map_char_table (set_identity, Qnil, table, table, up, 0, indices);
+      map_char_table (shuffle, Qnil, table, table, up, 0, indices);
       XCHAR_TABLE (table)->extras[0] = up;
     }
 
@@ -147,17 +147,20 @@ set_case_table (table, standard)
     {
       canon = Fmake_char_table (Qcase_table, Qnil);
       XCHAR_TABLE (table)->extras[1] = canon;
-      map_char_table (set_canon, Qnil, table, table, 0, indices);
+      map_char_table (set_canon, Qnil, table, table, table, 0, indices);
     }
 
   if (NILP (eqv))
     {
       eqv = Fmake_char_table (Qcase_table, Qnil);
-      map_char_table (set_identity, Qnil, canon, eqv, 0, indices);
-      map_char_table (shuffle, Qnil, canon, eqv, 0, indices);
+      map_char_table (set_identity, Qnil, canon, canon, eqv, 0, indices);
+      map_char_table (shuffle, Qnil, canon, canon, eqv, 0, indices);
       XCHAR_TABLE (table)->extras[2] = eqv;
     }
 
+  /* This is so set_image_of_range_1 in regex.c can find the EQV table.  */
+  XCHAR_TABLE (canon)->extras[2] = eqv;
+
   if (standard)
     Vascii_downcase_table = table;
   else