changeset 23044:6a8e5ce6cfc1

(set-language-environment): Reset syntax and case table to the defaults if the value of unibyte-syntax key is nil.
author Kenichi Handa <handa@m17n.org>
date Mon, 17 Aug 1998 02:34:54 +0000
parents 2afa25ce99aa
children a1cc2b12fdef
files lisp/international/mule-cmds.el
diffstat 1 files changed, 21 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Mon Aug 17 00:45:52 1998 +0000
+++ b/lisp/international/mule-cmds.el	Mon Aug 17 02:34:54 1998 +0000
@@ -1123,18 +1123,31 @@
   (setq charset-origin-alist
 	(get-language-info language-name 'charset-origin-alist))
 
+  ;; Unibyte setups if necessary.
   (unless default-enable-multibyte-characters
-    ;; Unibyte setups.
+    ;; Syntax and case table.
     (let ((syntax (get-language-info language-name 'unibyte-syntax)))
       (if syntax
 	  (let ((set-case-syntax-set-multibyte nil))
-	    (load syntax nil t)
-	    (set-standard-case-table (standard-case-table))
-	    (let ((list (buffer-list)))
-	      (while list
-		(with-current-buffer (car list)
-		  (set-case-table (standard-case-table)))
-		(setq list (cdr list)))))))
+	    (load syntax nil t))
+	;; No information for syntax and case.  Reset to the defaults.
+	(let ((syntax-table (standard-syntax-table))
+	      (case-table (standard-case-table))
+	      (ch 160))
+	  (while (< ch 256)
+	    (modify-syntax-entry ch " " syntax-table)
+	    (aset case-table ch ch)
+	    (setq ch (1+ ch)))
+	  (set-char-table-extra-slot case-table 0 nil)
+	  (set-char-table-extra-slot case-table 1 nil)
+	  (set-char-table-extra-slot case-table 2 nil))
+	(set-standard-case-table (standard-case-table))
+	(let ((list (buffer-list)))
+	  (while list
+	    (with-current-buffer (car list)
+	      (set-case-table (standard-case-table)))
+	    (setq list (cdr list))))))
+    ;; Display table and coding system for terminal.
     (let ((coding (get-language-info language-name 'unibyte-display)))
       (if coding
 	  (progn