summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1995-10-22 16:40:53 +0000
committerRichard M. Stallman <rms@gnu.org>1995-10-22 16:40:53 +0000
commit47301d53cc8a6a9b2e8cdddbcc5d0c76a89f11d6 (patch)
tree24d742bbd88eda6429cf30c1ac927a1f7774bd56 /src/buffer.c
parenta2c6104e369dae85948971befe0208cbb69fbe05 (diff)
downloademacs-47301d53cc8a6a9b2e8cdddbcc5d0c76a89f11d6.tar.gz
(reset_buffer_local_variables): Call
Fset_standard_case_table if std case table seems to have been changed.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c
index c533d4343fa..008dedde462 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -481,6 +481,14 @@ reset_buffer_local_variables (b)
b->abbrev_table = Vfundamental_mode_abbrev_table;
b->mode_name = QSFundamental;
b->minor_modes = Qnil;
+
+ /* If the standard case table has been altered and invalidated,
+ fix up its insides first. */
+ if (! (CHAR_TABLE_P (XCHAR_TABLE (Vascii_downcase_table)->extras[0])
+ && CHAR_TABLE_P (XCHAR_TABLE (Vascii_downcase_table)->extras[1])
+ && CHAR_TABLE_P (XCHAR_TABLE (Vascii_downcase_table)->extras[2])))
+ Fset_standard_case_table (Vascii_downcase_table);
+
b->downcase_table = Vascii_downcase_table;
b->upcase_table = XCHAR_TABLE (Vascii_downcase_table)->extras[0];
b->case_canon_table = XCHAR_TABLE (Vascii_downcase_table)->extras[1];