From f850d7828c49752a95674bd1b38902b77bf9bf01 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 5 Jul 1997 19:26:53 +0000 Subject: [PATCH] (set-language-environment): Do the real work here. (current-language-environment): New variable. (setup-specified-language-environment): Call set-language-environment. Set current-language-environment. (describe-language-environment): By default, use current-language-environment. --- lisp/international/mule-cmds.el | 25 +++++++++++++++---------- 1 file 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.") (defun setup-specified-language-environment () - "Setup multi-lingual environment convenient for the specified language." + "Set up multi-lingual environment convenient for the specified language." (interactive) - (let (language-name func) + (let (language-name) (if (and (symbolp last-command-event) (or (not (eq last-command-event 'Default)) (setq last-command-event 'English)) - (setq language-name (symbol-name last-command-event)) - (setq func (get-language-info language-name 'setup-function))) - (progn - (funcall func) - (force-mode-line-update t)) + (setq language-name (symbol-name last-command-event))) + (set-language-environment language-name) (error "Bogus calling sequence")))) +(defvar current-language-environment "English" + "The last language environment specified with `set-language-environment'.") + ;;;###autoload (defun set-language-environment (language-name) "Set up multi-lingual environment for using LANGUAGE-NAME. This sets the coding system priority and the default input method and sometimes other things." (interactive (list (read-language-name 'setup-function "Language: "))) + (if (member (downcase language-name) '("default")) + (setq language-name "english")) (if (or (null language-name) (null (get-language-info language-name 'setup-function))) - (error "No way to setup environment for the specified language")) - (let ((last-command-event (intern language-name))) - (setup-specified-language-environment))) + (error "Language environment not defined: %S" language-name)) + (funcall (get-language-info language-name 'setup-function)) + (setq current-language-environment language-name) + (force-mode-line-update t)) ;; Print all arguments with `princ', then print "\n". (defsubst princ-list (&rest args) @@ -569,6 +572,8 @@ and sometimes other things." (defun describe-language-environment (language-name) "Describe how Emacs supports language environment LANGUAGE-NAME." (interactive (list (read-language-name 'documentation "Language: "))) + (if (null language-name) + (setq language-name current-language-environment)) (if (or (null language-name) (null (get-language-info language-name 'documentation))) (error "No documentation for the specified language")) -- 2.39.2