changeset 64485:2273b7101b27

* 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.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Tue, 19 Jul 2005 05:01:20 +0000
parents 380dfb5322dc
children 7a2a18d68c02
files lisp/ChangeLog lisp/ediff.el lisp/emulation/viper-cmd.el
diffstat 3 files changed, 22 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Jul 19 02:38:57 2005 +0000
+++ b/lisp/ChangeLog	Tue Jul 19 05:01:20 2005 +0000
@@ -1,3 +1,11 @@
+2005-07-19  Michael Kifer  <kifer@cs.stonybrook.edu>
+	
+	* 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  <handa@m17n.org>
 
 	* international/mule-cmds.el (select-safe-coding-system): Try to
--- a/lisp/ediff.el	Tue Jul 19 02:38:57 2005 +0000
+++ b/lisp/ediff.el	Tue Jul 19 05:01:20 2005 +0000
@@ -1357,11 +1357,13 @@
 
 ;;;###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
--- a/lisp/emulation/viper-cmd.el	Tue Jul 19 02:38:57 2005 +0000
+++ b/lisp/emulation/viper-cmd.el	Tue Jul 19 05:01:20 2005 +0000
@@ -774,7 +774,8 @@
 	   )
 
 	  (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 @@
 	(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