Function: activate-input-method
activate-input-method is a byte-compiled function defined in
mule-cmds.el.gz.
Signature
(activate-input-method INPUT-METHOD)
Documentation
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.
Source Code
;; Defined in /usr/src/emacs/lisp/international/mule-cmds.el.gz
(defun activate-input-method (input-method)
"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 (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)))
(deactivate-input-method))
(unless (or current-input-method (null input-method))
(let ((slot (assoc input-method input-method-alist)))
(if (null slot)
(error "Can't activate input method `%s'" input-method))
(setq current-input-method-title nil)
(let ((func (nth 2 slot)))
(if (functionp func)
(apply (nth 2 slot) input-method (nthcdr 5 slot))
(if (and (consp func) (symbolp (car func)) (symbolp (cdr func)))
(progn
(require (cdr func))
(apply (car func) input-method (nthcdr 5 slot)))
(error "Can't activate input method `%s'" input-method))))
(setq current-input-method input-method)
(or (stringp current-input-method-title)
(setq current-input-method-title (nth 3 slot)))
(unwind-protect
(run-hooks 'input-method-activate-hook)
(force-mode-line-update)))))