From acfb6f24f7aed6f004f1cc452761d1d17f3041ff Mon Sep 17 00:00:00 2001 From: Michael Kifer Date: Tue, 19 Jul 2005 05:01:20 +0000 Subject: [PATCH] * 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. --- lisp/ChangeLog | 8 ++++++++ lisp/ediff.el | 12 +++++++----- lisp/emulation/viper-cmd.el | 10 +++++++--- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4e17939aab1..94892c13f58 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2005-07-19 Michael Kifer + + * 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. + 2005-07-19 Kenichi Handa * international/mule-cmds.el (select-safe-coding-system): Try to diff --git a/lisp/ediff.el b/lisp/ediff.el index f842e9dec6c..1bf52b1c59f 100644 --- a/lisp/ediff.el +++ b/lisp/ediff.el @@ -1357,11 +1357,13 @@ buffer. If odd -- assume it is in a file." ;;;###autoload (defun ediff-patch-buffer (&optional arg patch-buf) - "Run Ediff by patching BUFFER-NAME. -Without prefix argument: asks if the patch is in some buffer and prompts for -the buffer or a file, depending on the answer. -With prefix arg=1: assumes the patch is in a file and prompts for the file. -With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer." + "Run Ediff by patching the buffer specified at prompt. +Without the optional prefix ARG, asks if the patch is in some buffer and +prompts for the buffer or a file, depending on the answer. +With ARG=1, assumes the patch is in a file and prompts for the file. +With ARG=2, assumes the patch is in a buffer and prompts for the buffer. +PATCH-BUF is an optional argument, which specifies the buffer that contains the +patch. If not given, the user is prompted according to the prefix argument." (interactive "P") (require 'ediff-ptch) (setq patch-buf 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 -- 2.11.4.GIT