diff lisp/mule/mule-init.el @ 207:e45d5e7c476e r20-4b2

Import from CVS: tag r20-4b2
author cvs
date Mon, 13 Aug 2007 10:03:52 +0200
parents acd284d43ca1
children 41ff10fd062f
line wrap: on
line diff
--- a/lisp/mule/mule-init.el	Mon Aug 13 10:02:48 2007 +0200
+++ b/lisp/mule/mule-init.el	Mon Aug 13 10:03:52 2007 +0200
@@ -42,8 +42,8 @@
 (require 'cl)
 
 
-(setq language-environment-list
-      (sort (language-environment-list) 'string-lessp))
+;; (setq language-environment-list
+;;       (sort (language-environment-list) 'string-lessp))
 
 ;; MULE keymap codes were moved to mule-cmds.el.
 
@@ -84,34 +84,36 @@
   (help-with-tutorial (concat "mule/TUTORIAL" (or language ""))))
 
 (defvar auto-language-alist
-  '(("^ja" . japanese)
-    ("^zh" . chinese)
-    ("^ko" . korean))
+  '(("^ja" . "Japanese")
+    ("^zh" . "Chinese")
+    ("^ko" . "Korean"))
   "Alist of LANG patterns vs. corresponding language environment.
 Each element looks like (REGEXP . LANGUAGE-ENVIRONMENT).
 It the value of the environment variable LANG matches the regexp REGEXP,
 then `set-language-environment' is called with LANGUAGE-ENVIRONMENT.")
-  
+
 (defun init-mule ()
   "Initialize MULE environment at startup.  Don't call this."
   (let ((lang (or (getenv "LC_ALL") (getenv "LC_MESSAGES") (getenv "LANG"))))
     (unless (or (null lang) (string-equal "C" lang))
       (let ((case-fold-search t))
-        (loop for elt in auto-language-alist
-              if (string-match (car elt) lang)
-              return (set-language-environment (cdr elt))))
-
+	(loop for elt in auto-language-alist
+	      if (string-match (car elt) lang)
+	      return (progn
+		       (setq lang (substring lang 0 (match-end 0)))
+		       (set-language-environment (cdr elt))
+		       )))
       ;; Load a (localizable) locale-specific init file, if it exists.
       (load (format "locale/%s/locale-start" lang) t t)))
-
-  (when (current-language-environment)
+  
+  (when current-language-environment
     ;; Translate remaining args on command line using file-name-coding-system
     (loop for arg in-ref command-line-args-left do
 	  (setf arg (decode-coding-string arg file-name-coding-system)))
-
+    
     ;; rman seems to be incompatible with encoded text
     (setq Manual-use-rosetta-man nil)
-    
+
     ;; Make sure ls -l output is readable by dired and encoded using
     ;; file-name-coding-system
     (add-hook
@@ -120,7 +122,7 @@
        (make-local-variable 'process-environment)
        (setenv "LC_MESSAGES" "C")
        (setenv "LC_TIME"     "C"))))
-
+  
   ;; Register avairable input methods by loading LEIM list file.
   (load "leim-list.el" 'noerror 'nomessage 'nosuffix)
   )