]> git.eshelyaron.com Git - emacs.git/commitdiff
(toggle-input-method-active): New var.
authorRichard M. Stallman <rms@gnu.org>
Thu, 29 Nov 2007 22:35:11 +0000 (22:35 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 29 Nov 2007 22:35:11 +0000 (22:35 +0000)
(toggle-input-method): Bind toggle-input-method-active to t.
Error if it was already non-nil.

lisp/ChangeLog
lisp/international/mule-cmds.el

index 3576d72bf1ab89f3a7408afbb7ba5831d7f082b6..e94db35386cdd7d42fb2cc42dd41d5b34712148d 100644 (file)
@@ -1,3 +1,9 @@
+2007-11-29  Richard Stallman  <rms@gnu.org>
+
+       * international/mule-cmds.el (toggle-input-method-active): New var.
+       (toggle-input-method): Bind toggle-input-method-active to t.
+       Error if it was already non-nil.
+
 2007-11-29  Glenn Morris  <rgm@gnu.org>
 
        * calendar/time-date.el (with-decoded-time-value): Doc fix.
index 6dd1bf07213a5cba1c0245d0421eb2e752ee2aa6..19663f594b9c21e8b2e3e5ca736f94391b86bb99 100644 (file)
@@ -1492,6 +1492,9 @@ To deactivate it programmatically, use `inactivate-input-method'."
     (customize-mark-as-set 'default-input-method))
   default-input-method)
 
+(defvar toggle-input-method-active nil
+  "Non-nil inside `toggle-input-method'.")
+
 (defun toggle-input-method (&optional arg interactive)
   "Enable or disable multilingual text input method for the current buffer.
 Only one input method can be enabled at any time in a given buffer.
@@ -1511,9 +1514,12 @@ When called interactively, the optional arg INTERACTIVE is non-nil,
 which marks the variable `default-input-method' as set for Custom buffers."
 
   (interactive "P\np")
+  (if toggle-input-method-active
+      (error "Recursive use of `toggle-input-method'"))
   (if (and current-input-method (not arg))
       (inactivate-input-method)
-    (let ((default (or (car input-method-history) default-input-method)))
+    (let ((toggle-input-method-active t)
+         (default (or (car input-method-history) default-input-method)))
       (if (and arg default (equal current-input-method default)
               (> (length input-method-history) 1))
          (setq default (nth 1 input-method-history)))