diff options
author | Kenichi Handa <handa@m17n.org> | 1998-08-17 02:34:54 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 1998-08-17 02:34:54 +0000 |
commit | 63283a8f24c52d67c70a97c8832789209f848898 (patch) | |
tree | a86e3c72838c0bb55d02756be8cd6d3c4e3248cc | |
parent | 48d3818408de401a30e5c1e419da3c852f7aa581 (diff) | |
download | emacs-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.el | 29 |
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 |