From: Kenichi Handa Date: Tue, 18 Aug 1998 00:44:20 +0000 (+0000) Subject: (activate-input-method): Handle the X-Git-Tag: emacs-20.3~30 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=305a3cb64010f62b4d71403d4f3b0662cb391a57;p=emacs.git (activate-input-method): Handle the case that the arg INPUT-METHOD is nil correctly. (read-multilingual-string): Activate the specified input method before calling read-string. Afterward, activate the original input method. --- diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 00f46bed555..2ebc5f147a8 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -786,11 +786,11 @@ The return value is a string." "Switch to input method INPUT-METHOD for the current buffer. If some other input method is already active, turn it off first. If INPUT-METHOD is nil, deactivate any current input method." - (if (symbolp input-method) + (if (and input-method (symbolp input-method)) (setq input-method (symbol-name input-method))) (if (and current-input-method (not (string= current-input-method input-method))) - (inactivate-input-method)) + (inactivate-input-method)) (unless (or current-input-method (null input-method)) (let ((slot (assoc input-method input-method-alist))) (if (null slot) @@ -907,8 +907,12 @@ or a string." (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 ((prev-input-method current-input-method)) + (unwind-protect + (progn + (activate-input-method input-method) + (read-string prompt initial-input nil nil t)) + (activate-input-method prev-input-method)))) ;; Variables to control behavior of input methods. All input methods ;; should react to these variables.