summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1998-08-17 02:34:54 +0000
committerKenichi Handa <handa@m17n.org>1998-08-17 02:34:54 +0000
commit63283a8f24c52d67c70a97c8832789209f848898 (patch)
treea86e3c72838c0bb55d02756be8cd6d3c4e3248cc
parent48d3818408de401a30e5c1e419da3c852f7aa581 (diff)
downloademacs-63283a8f24c52d67c70a97c8832789209f848898.tar.gz
(set-language-environment): Reset
syntax and case table to the defaults if the value of unibyte-syntax key is nil.
-rw-r--r--lisp/international/mule-cmds.el29
1 files changed, 21 insertions, 8 deletions
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 39122d0641b..00f46bed555 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1123,18 +1123,31 @@ specifies the character set for the major languages of Western Europe."
(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