aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/international/mule-cmds.el25
1 files changed, 15 insertions, 10 deletions
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index e976bbe9296..2b6b968954c 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -522,30 +522,33 @@ inputting at minibuffer if this flag is t.")
522 522
523 523
524(defun setup-specified-language-environment () 524(defun setup-specified-language-environment ()
525 "Setup multi-lingual environment convenient for the specified language." 525 "Set up multi-lingual environment convenient for the specified language."
526 (interactive) 526 (interactive)
527 (let (language-name func) 527 (let (language-name)
528 (if (and (symbolp last-command-event) 528 (if (and (symbolp last-command-event)
529 (or (not (eq last-command-event 'Default)) 529 (or (not (eq last-command-event 'Default))
530 (setq last-command-event 'English)) 530 (setq last-command-event 'English))
531 (setq language-name (symbol-name last-command-event)) 531 (setq language-name (symbol-name last-command-event)))
532 (setq func (get-language-info language-name 'setup-function))) 532 (set-language-environment language-name)
533 (progn
534 (funcall func)
535 (force-mode-line-update t))
536 (error "Bogus calling sequence")))) 533 (error "Bogus calling sequence"))))
537 534
535(defvar current-language-environment "English"
536 "The last language environment specified with `set-language-environment'.")
537
538;;;###autoload 538;;;###autoload
539(defun set-language-environment (language-name) 539(defun set-language-environment (language-name)
540 "Set up multi-lingual environment for using LANGUAGE-NAME. 540 "Set up multi-lingual environment for using LANGUAGE-NAME.
541This sets the coding system priority and the default input method 541This sets the coding system priority and the default input method
542and sometimes other things." 542and sometimes other things."
543 (interactive (list (read-language-name 'setup-function "Language: "))) 543 (interactive (list (read-language-name 'setup-function "Language: ")))
544 (if (member (downcase language-name) '("default"))
545 (setq language-name "english"))
544 (if (or (null language-name) 546 (if (or (null language-name)
545 (null (get-language-info language-name 'setup-function))) 547 (null (get-language-info language-name 'setup-function)))
546 (error "No way to setup environment for the specified language")) 548 (error "Language environment not defined: %S" language-name))
547 (let ((last-command-event (intern language-name))) 549 (funcall (get-language-info language-name 'setup-function))
548 (setup-specified-language-environment))) 550 (setq current-language-environment language-name)
551 (force-mode-line-update t))
549 552
550;; Print all arguments with `princ', then print "\n". 553;; Print all arguments with `princ', then print "\n".
551(defsubst princ-list (&rest args) 554(defsubst princ-list (&rest args)
@@ -569,6 +572,8 @@ and sometimes other things."
569(defun describe-language-environment (language-name) 572(defun describe-language-environment (language-name)
570 "Describe how Emacs supports language environment LANGUAGE-NAME." 573 "Describe how Emacs supports language environment LANGUAGE-NAME."
571 (interactive (list (read-language-name 'documentation "Language: "))) 574 (interactive (list (read-language-name 'documentation "Language: ")))
575 (if (null language-name)
576 (setq language-name current-language-environment))
572 (if (or (null language-name) 577 (if (or (null language-name)
573 (null (get-language-info language-name 'documentation))) 578 (null (get-language-info language-name 'documentation)))
574 (error "No documentation for the specified language")) 579 (error "No documentation for the specified language"))