summaryrefslogtreecommitdiff
path: root/lisp/emulation/viper-cmd.el
diff options
context:
space:
mode:
authorMichael Kifer <kifer@cs.stonybrook.edu>2005-07-19 05:01:20 +0000
committerMichael Kifer <kifer@cs.stonybrook.edu>2005-07-19 05:01:20 +0000
commitacfb6f24f7aed6f004f1cc452761d1d17f3041ff (patch)
tree1914f928acb5ecb6dcc15acfeb937cd3e839c727 /lisp/emulation/viper-cmd.el
parentc061dd8f05146e6724b6fc4d5f2b524e69872cac (diff)
downloademacs-acfb6f24f7aed6f004f1cc452761d1d17f3041ff.tar.gz
* viper-cmd.el (viper-escape-to-state): bug fix
(viper-envelop-ESC-key): changed the definition of fast keysequence so it'll work with keyboard macros * ediff.el (ediff-patch-buffer): changed the docstring.
Diffstat (limited to 'lisp/emulation/viper-cmd.el')
-rw-r--r--lisp/emulation/viper-cmd.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index ecd5251891c..47b677b2e19 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -774,7 +774,8 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to
)
(if (commandp com)
- (progn
+ ;; pretend that current state is the state we excaped to
+ (let ((viper-current-state state))
(setq prefix-arg (or prefix-arg arg))
(command-execute com)))
)
@@ -996,9 +997,12 @@ as a Meta key and any number of multiple escapes is allowed."
(inhibit-quit t))
(if (viper-ESC-event-p event)
(progn
- (if (viper-fast-keysequence-p)
+ ;; Emacs 22.50.8 introduced a bug, which makes even a single ESC into
+ ;; a fast keyseq. To guard against this, we added a check if there
+ ;; are other events as well
+ (if (and (viper-fast-keysequence-p) unread-command-events)
(progn
- (let (minor-mode-map-alist)
+ (let (minor-mode-map-alist emulation-mode-map-alists)
(viper-set-unread-command-events event)
(setq keyseq (read-key-sequence nil 'continue-echo))
) ; let