Function: activate-transient-input-method

activate-transient-input-method is an interactive and byte-compiled function defined in mule-cmds.el.gz.

Signature

(activate-transient-input-method &optional ARG INTERACTIVE)

Documentation

Select and enable a transient input method for the current buffer.

If default-transient-input-method was not yet defined, prompt for it.

View in manual

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/international/mule-cmds.el.gz
(defun activate-transient-input-method (&optional arg interactive)
  "Select and enable a transient input method for the current buffer.
If `default-transient-input-method' was not yet defined, prompt for it."
  (interactive "P\np")
  (when (or arg (not default-transient-input-method))
    (let* ((default (or (car input-method-history) default-input-method))
           (input-method
            (read-input-method-name
             (format-prompt "Transient input method" default)
             default t)))
      (setq default-transient-input-method input-method)
      (when interactive
        (customize-mark-as-set 'default-transient-input-method))))
  (let* ((clearfun (make-symbol "clear-transient-input-method"))
         (exitfun
          (lambda ()
            (deactivate-transient-input-method)
            (remove-hook 'input-method-after-insert-chunk-hook clearfun))))
    (fset clearfun (lambda () (funcall exitfun)))
    (add-hook 'input-method-after-insert-chunk-hook clearfun)
    (setq previous-transient-input-method current-input-method)
    (when previous-transient-input-method
      (deactivate-input-method))
    (activate-input-method default-transient-input-method)
    (setq current-transient-input-method default-transient-input-method)
    exitfun))