changeset 67320:08bc4f887f34

(set-language-info-internal): New function. (set-language-info): Call set-language-info-internal to update language-info-alist. If LANG-ENV is the current one, call set-language-environment to make INFO effective now. (set-language-info-alist): Likewise. (locale-language-names): With locale "en", use English lang. env. but set the default codings to iso-8859-1.
author Kenichi Handa <handa@m17n.org>
date Mon, 05 Dec 2005 07:38:44 +0000
parents c9307100bfd0
children 671987b77f52
files lisp/international/mule-cmds.el
diffstat 1 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Mon Dec 05 02:26:03 2005 +0000
+++ b/lisp/international/mule-cmds.el	Mon Dec 05 07:38:44 2005 +0000
@@ -1126,6 +1126,13 @@
 see `language-info-alist'."
   (if (symbolp lang-env)
       (setq lang-env (symbol-name lang-env)))
+  (set-language-info-internal lang-env key info)
+  (if (equal lang-env current-language-environment)
+      (set-language-environment lang-env)))
+
+(defun set-language-info-internal (lang-env key info)
+  "Internal use only.
+Arguments are the same as `set-language-info'."
   (let (lang-slot key-slot)
     (setq lang-slot (assoc lang-env language-info-alist))
     (if (null lang-slot)		; If no slot for the language, add it.
@@ -1196,9 +1203,11 @@
     (define-key-after setup-map (vector (intern lang-env))
       (cons lang-env 'setup-specified-language-environment) t)
 
-    (while alist
-      (set-language-info lang-env (car (car alist)) (cdr (car alist)))
-      (setq alist (cdr alist)))))
+    (dolist (elt alist)
+      (set-language-info-internal lang-env (car elt) (cdr elt)))
+    
+    (if (equal lang-env current-language-environment)
+	(set-language-environment lang-env))))
 
 (defun read-language-name (key prompt &optional default)
   "Read a language environment name which has information for KEY.
@@ -2129,7 +2138,7 @@
     ;; That's actually what the GNU locales define, modulo things like
     ;; en_IN -- fx.
     ("en_IN" "English" utf-8) ; glibc uses utf-8 for English in India
-    ("en" . "Latin-1") ; English
+    ("en" "English" iso-8859-1) ; English
     ("eo" . "Latin-3") ; Esperanto
     ("es" "Spanish" iso-8859-1)
     ("et" . "Latin-1") ; Estonian