From d34596414ea64e1009c1d785f83d10e9bde67be8 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 21 Oct 1997 10:47:35 +0000 Subject: [PATCH] (read-multilingual-string): Use current-input-method prior to default-input-method. Don't bind current-input-method by `let', instead, activate the specified input method in the current buffer temporarily. --- lisp/international/mule-cmds.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index af6aaf03955..fa02eb71aaa 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -549,8 +549,7 @@ When there's no input method to turn on, turn on what read from minibuffer." (ding)) (error "No input method is activated now"))) -(defun read-multilingual-string (prompt &optional initial-input - input-method) +(defun read-multilingual-string (prompt &optional initial-input input-method) "Read a multilingual string from minibuffer, prompting with string PROMPT. The input method selected last time is activated in minibuffer. If optional second arg INITIAL-INPUT is non-nil, insert it in the minibuffer @@ -560,12 +559,19 @@ to be activated instead of the one selected last time. It is a symbol or a string." (setq input-method (or input-method + current-input-method default-input-method (read-input-method-name "Input method: " nil t))) (if (and input-method (symbolp input-method)) (setq input-method (symbol-name input-method))) - (let ((current-input-method input-method)) - (read-string prompt initial-input nil nil t))) + (let ((previous-input-method current-input-method)) + (unwind-protect + (progn + (activate-input-method input-method) + (read-string prompt initial-input nil nil t)) + (if previous-input-method + (activate-input-method previous-input-method) + (inactivate-input-method))))) ;; Variables to control behavior of input methods. All input methods ;; should react to these variables. -- 2.39.2