diff lisp/emulation/viper-cmd.el @ 104277:affb617d6101

2009-08-15 Michael Kifer <kifer@cs.stonybrook.edu> * viper-cmd.el (viper-insert-isearch-string): new function. (viper-if-string): redefine C-s in the minibuffer to insert the last incremental search string. * ediff-init.el (ediff-coding-system): use escape-quoted in case of XEmacs. * ediff-merg.el (ediff-merge-region-is-non-clash-to-skip, ediff-merge-region-is-non-clash, ediff-skip-merge-region-if-changed-from-default-p): use defun. Also check if the job is really a merge job. * ediff.el (ediff-current-file): new function.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Sat, 15 Aug 2009 05:57:08 +0000
parents dbe70c3aa01d
children bd2966850aac
line wrap: on
line diff
--- a/lisp/emulation/viper-cmd.el	Sat Aug 15 01:13:18 2009 +0000
+++ b/lisp/emulation/viper-cmd.el	Sat Aug 15 05:57:08 2009 +0000
@@ -3685,15 +3685,24 @@
 
 ;; searching
 
+(defun viper-insert-isearch-string ()
+  "Insert `isearch' last search string."
+  (interactive)
+  (when isearch-string (insert isearch-string)))
+
 (defun viper-if-string (prompt)
   (if (memq viper-intermediate-command
 	    '(viper-command-argument viper-digit-argument viper-repeat))
       (setq viper-this-command-keys (this-command-keys)))
-  (let ((s (viper-read-string-with-history
+  (let* ((keymap (let ((keymap (copy-keymap minibuffer-local-map)))
+                   (define-key keymap [(control ?s)] 'viper-insert-isearch-string)
+                   keymap))
+         (s (viper-read-string-with-history
 	    prompt
 	    nil ; no initial
 	    'viper-search-history
-	    (car viper-search-history))))
+             (car viper-search-history)
+             keymap)))
     (if (not (string= s ""))
 	(setq viper-s-string s))))