changeset 90521:b81a8a5635a8

(set-language-info): Fix synching with HEAD. (set-language-environment): Likewise. (standard-display-european-internal): Sync with HEAD. (set-language-environment-nonascii-translation): Fix synching with HEAD. (set-language-environment-fontset): Delete it. (set-language-environment-unibyte): Fix synching with HEAD.
author Kenichi Handa <handa@m17n.org>
date Fri, 07 Jul 2006 01:06:18 +0000
parents 700b79e69892
children 90f8df2248ad
files lisp/international/mule-cmds.el
diffstat 1 files changed, 35 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Fri Jul 07 00:52:49 2006 +0000
+++ b/lisp/international/mule-cmds.el	Fri Jul 07 01:06:18 2006 +0000
@@ -1089,15 +1089,14 @@
   (set-language-info-internal lang-env key info)
   (if (equal lang-env current-language-environment)
       (cond ((eq key 'coding-priority)
-	     (set-language-environment-coding-systems lang-env))
+	     (set-language-environment-coding-systems lang-env)
+	     (set-language-environment-charset lang-env))
 	    ((eq key 'input-method)
 	     (set-language-environment-input-method lang-env))
 	    ((eq key 'nonascii-translation)
 	     (set-language-environment-nonascii-translation lang-env))
 	    ((eq key 'charset)
 	     (set-language-environment-charset lang-env))
-	    ((eq key 'overriding-fontspec)
-	     (set-language-environment-fontset lang-env))
 	    ((and (not default-enable-multibyte-characters)
 		  (or (eq key 'unibyte-syntax) (eq key 'unibyte-display)))
 	     (set-language-environment-unibyte lang-env)))))
@@ -1777,56 +1776,28 @@
 				     'exit-function)))
 	(run-hooks 'exit-language-environment-hook)
 	(if (functionp func) (funcall func))))
-  (let ((default-eol-type (coding-system-eol-type
-			   default-buffer-file-coding-system)))
-    (reset-language-environment)
 
-    ;; The features might set up coding systems.
-    (let ((required-features (get-language-info language-name 'features)))
-      (while required-features
-	(require (car required-features))
-	(setq required-features (cdr required-features))))
-
-    (setq current-language-environment language-name)
-    (set-language-environment-coding-systems language-name default-eol-type))
-  (let ((input-method (get-language-info language-name 'input-method)))
-    (when input-method
-      (setq default-input-method input-method)
-      (if input-method-history
-	  (setq input-method-history
-		(cons input-method
-		      (delete input-method input-method-history))))))
-
-  ;; Put higher priorities to such charsets that are supported by the
-  ;; coding systems of higher priorities in this environment.
-  (let ((charsets (get-language-info language-name 'charset)))
-    (dolist (coding (get-language-info language-name 'coding-priority))
-      (setq charsets (append charsets (coding-system-charset-list coding))))
-    (if charsets
-	(apply 'set-charset-priority charsets)))
-
-  ;; Note: For DOS, we assumed that the charset cpXXX is already
-  ;; defined.
-  (let ((nonascii (get-language-info language-name 'nonascii-translation)))
-    (if (eq window-system 'pc)
-	(setq nonascii (intern "cp%d" dos-codepage)))
-    (or (and (charsetp nonascii)
-	     (get-charset-property nonascii :ascii-compatible-p))
-	(setq nonascii 'iso-8859-1))
-    (set-unibyte-charset nonascii))
-
-  ;; Unibyte setups if necessary.
-  (or default-enable-multibyte-characters
-      (set-display-table-and-terminal-coding-system language-name))
-
+  (reset-language-environment)
+  ;; The features might set up coding systems.
   (let ((required-features (get-language-info language-name 'features)))
     (while required-features
       (require (car required-features))
       (setq required-features (cdr required-features))))
 
+  (setq current-language-environment language-name)
+
+  (set-language-environment-coding-systems language-name)
+  (set-language-environment-input-method language-name)
+  (set-language-environment-nonascii-translation language-name)
+  (set-language-environment-charset language-name)
+  ;; Unibyte setups if necessary.
+  (unless default-enable-multibyte-characters
+    (set-language-environment-unibyte language-name))
+
   (let ((func (get-language-info language-name 'setup-function)))
     (if (functionp func)
 	(funcall func)))
+
   (run-hooks 'set-language-environment-hook)
   (force-mode-line-update t))
 
@@ -1917,14 +1888,11 @@
 	;; proper windows-1252 coding system.  --fx]
 	(aset standard-display-table 146 [39]))))
 
-(defun set-language-environment-coding-systems (language-name
-						&optional eol-type)
-  "Do various coding system setups for language environment LANGUAGE-NAME.
-
-The optional arg EOL-TYPE specifies the eol-type of the default value
-of `buffer-file-coding-system' set by this function."
+(defun set-language-environment-coding-systems (language-name)
+  "Do various coding system setups for language environment LANGUAGE-NAME."
   (let* ((priority (get-language-info language-name 'coding-priority))
-	 (default-coding (car priority)))
+	 (default-coding (car priority))
+	 (eol-type (coding-system-eol-type default-buffer-file-coding-system)))
     (when priority
       (set-default-coding-systems
        (if (memq eol-type '(0 1 2 unix dos mac))
@@ -1945,66 +1913,28 @@
 
 (defun set-language-environment-nonascii-translation (language-name)
   "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME."
-  (let ((nonascii (get-language-info language-name 'nonascii-translation))
-	(dos-table
-	 (if (eq window-system 'pc)
-	     (intern
-	      (format "cp%d-nonascii-translation-table" dos-codepage)))))
-    (cond
-     ((char-table-p nonascii)
-      (setq nonascii-translation-table nonascii))
-     ((and (eq window-system 'pc) (boundp dos-table))
-      ;; DOS terminals' default is to use a special non-ASCII translation
-      ;; table as appropriate for the installed codepage.
-      (setq nonascii-translation-table (symbol-value dos-table)))
-     ((charsetp nonascii)
-      (setq nonascii-insert-offset (- (make-char nonascii) 128))))))
+  ;; Note: For DOS, we assumed that the charset cpXXX is already
+  ;; defined.
+  (let ((nonascii (get-language-info language-name 'nonascii-translation)))
+    (if (eq window-system 'pc)
+	(setq nonascii (intern "cp%d" dos-codepage)))
+    (or (and (charsetp nonascii)
+	     (get-charset-property nonascii :ascii-compatible-p))
+	(setq nonascii 'iso-8859-1))
+    (set-unibyte-charset nonascii)))
 
 (defun set-language-environment-charset (language-name)
   "Do various charset setups for language environment LANGUAGE-NAME."
-  (if (and utf-translate-cjk-mode
-	   (not (eq utf-translate-cjk-lang-env language-name))
-	   (catch 'tag
-	     (dolist (charset (get-language-info language-name 'charset))
-	       (if (memq charset utf-translate-cjk-charsets)
-		   (throw 'tag t)))
-	     nil))
-      (utf-translate-cjk-load-tables)))
-
-(defun set-language-environment-fontset (language-name)
-  "Do various fontset setups for language environment LANGUAGE-NAME."
-  ;; Don't invoke fontset-related functions if fontsets aren't
-  ;; supported in this build of Emacs.
-  (if (fboundp 'fontset-list)
-      (set-overriding-fontspec-internal
-       (get-language-info language-name 'overriding-fontspec))))
+  ;; Put higher priorities to such charsets that are supported by the
+  ;; coding systems of higher priorities in this environment.
+  (let ((charsets (get-language-info language-name 'charset)))
+    (dolist (coding (get-language-info language-name 'coding-priority))
+      (setq charsets (append charsets (coding-system-charset-list coding))))
+    (if charsets
+	(apply 'set-charset-priority charsets))))
 
 (defun set-language-environment-unibyte (language-name)
   "Do various unibyte-mode setups for language environment LANGUAGE-NAME."
-  ;; 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))
-      ;; No information for syntax and case.  Reset to the defaults.
-      (let ((syntax-table (standard-syntax-table))
-	    (standard-table (standard-case-table))
-	    (case-table (make-char-table 'case-table))
-	    (ch (if (eq window-system 'pc) 128 160)))
-	(while (< ch 256)
-	  (modify-syntax-entry ch " " syntax-table)
-	  (setq ch (1+ ch)))
-	(dotimes (i 128)
-	  (aset case-table i (aref standard-table i)))
-	(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 case-table))
-      (let ((list (buffer-list)))
-	(while list
-	  (with-current-buffer (car list)
-	    (set-case-table (standard-case-table)))
-	  (setq list (cdr list))))))
   (set-display-table-and-terminal-coding-system language-name))
 
 (defsubst princ-list (&rest args)