From: Kenichi Handa Date: Mon, 17 Aug 1998 02:34:54 +0000 (+0000) Subject: (set-language-environment): Reset X-Git-Tag: emacs-20.3~35 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=63283a8f24c52d67c70a97c8832789209f848898;p=emacs.git (set-language-environment): Reset syntax and case table to the defaults if the value of unibyte-syntax key is nil. --- 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