(set-language-environment): Reset

syntax and case table to the defaults if the value of
unibyte-syntax key is nil.
This commit is contained in:
Kenichi Handa 1998-08-17 02:34:54 +00:00
parent 48d3818408
commit 63283a8f24

View file

@ -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