[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patch] 21.3 find-dired.el - Add 'g' key to repeat last find command

From: Jari+mail.emacs
Subject: [patch] 21.3 find-dired.el - Add 'g' key to repeat last find command
Date: Fri, 21 Jan 2005 10:02:42 +0200
User-agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (windows-nt)

As with dired 'g', the results of find-dired can now be repeated. With log
files and IMAP mail directories, this feature is quite useful.

2005-01-21 Fri  Jari  <jari dot aalto A T cante dot net>

        * find-dired.el (find-dired-revert): New function.
        (find-dir): New variable.
        (find-dired): Added local `revert-buffer-function' and
        restored key 'g' to rerun last find command.

--- find-dired.el       2005-01-21 09:33:59+02  1.1
+++ find-dired.el       2005-01-21 09:56:04+02  1.2
@@ -69,9 +69,23 @@
 (defvar find-args nil
   "Last arguments given to `find' by \\[find-dired].")
+(defvar find-dir nil
+  "Last arguments given to `find' by \\[find-dired].")
 ;; History of find-args values entered in the minibuffer.
 (defvar find-args-history nil)
+(defun find-dired-revert (&optional ignore-auto noconfirm)
+  "Rerun last command `find-dired' command.
+Optional arguments IGNORE-AUTO and NOCONFIRM are not used."
+  (interactive)
+  (let* ((args find-args)
+         (dir  find-dir))
+    (if (and dir args)
+        (find-dired dir args)
+      (message
+       "Find dired: no previous information stored to repeat find."))))
 (defun find-dired (dir args)
   "Run `find' and go into Dired mode on a buffer of the output.
@@ -92,6 +106,7 @@
     ;; Check that it's really a directory.
     (or (file-directory-p dir)
        (error "find-dired needs a directory: %s" dir))
+    (setq find-dir dir)  ; Save for later use
     (switch-to-buffer (get-buffer-create "*Find*"))
     ;; See if there's still a `find' running, and offer to kill
@@ -124,7 +139,8 @@
     ;; This really should rerun the find command, but I don't
     ;; have time for that.
     (use-local-map (append (make-sparse-keymap) (current-local-map)))
-    (define-key (current-local-map) "g" 'undefined)
+    ;; (define-key (current-local-map) "g" 'undefined)
+    (set (make-local-variable 'revert-buffer-function) 'find-dired-revert)
     ;; Set subdir-alist so that Tree Dired will work:
     (if (fboundp 'dired-simple-subdir-alist)
        ;; will work even with nested dired format (dired-nstd.el,v 1.15

reply via email to

[Prev in Thread] Current Thread [Next in Thread]