Mercurial > emacs
changeset 53404:5e98e2525d62
(kill-find): New command.
(find-dired): Make buffer read-only.
Set up a keymap with C-c C-k running kill-find.
(find-dired-filter, find-dired-sentinel): Bind inhibit-read-only.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 29 Dec 2003 19:15:23 +0000 |
parents | 9bdc3d1a6a5f |
children | decc60fe49d5 |
files | lisp/find-dired.el |
diffstat | 1 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/find-dired.el Mon Dec 29 19:14:03 2003 +0000 +++ b/lisp/find-dired.el Mon Dec 29 19:15:23 2003 +0000 @@ -123,6 +123,10 @@ (car find-ls-option))) ;; The next statement will bomb in classic dired (no optional arg allowed) (dired-mode dir (cdr find-ls-option)) + (let ((map (make-sparse-keymap))) + (set-keymap-parent map (current-local-map)) + (define-key map "\C-c\C-k" 'kill-find) + (use-local-map map)) (make-local-variable 'dired-sort-inhibit) (setq dired-sort-inhibit t) (set (make-local-variable 'revert-buffer-function) @@ -144,6 +148,7 @@ ;; Make second line a ``find'' line in analogy to the ``total'' or ;; ``wildcard'' line. (insert " " args "\n") + (setq buffer-read-only t) ;; Start the find process. (let ((proc (start-process-shell-command find-dired-find-program (current-buffer) args))) (set-process-filter proc (function find-dired-filter)) @@ -152,6 +157,16 @@ (move-marker (process-mark proc) 1 (current-buffer))) (setq mode-line-process '(":%s")))) +(defun kill-find () + "Kill the `find' process running in the current buffer." + (interactive) + (let ((find (get-buffer-process (current-buffer)))) + (and find (eq (process-status find) 'run) + (eq (process-filter find) (function find-dired-filter)) + (condition-case nil + (delete-process find) + (error nil))))) + ;;;###autoload (defun find-name-dired (dir pattern) "Search DIR recursively for files matching the globbing pattern PATTERN, @@ -192,7 +207,8 @@ (defun find-dired-filter (proc string) ;; Filter for \\[find-dired] processes. - (let ((buf (process-buffer proc))) + (let ((buf (process-buffer proc)) + (inhibit-read-only t)) (if (buffer-name buf) ; not killed? (save-excursion (set-buffer buf) @@ -229,7 +245,8 @@ (defun find-dired-sentinel (proc state) ;; Sentinel for \\[find-dired] processes. - (let ((buf (process-buffer proc))) + (let ((buf (process-buffer proc)) + (inhibit-read-only t)) (if (buffer-name buf) (save-excursion (set-buffer buf)