From 8ad5033be1e1cbbfdd831b37f916be5a6f610c91 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 25 Jul 2000 16:05:09 +0000 Subject: [PATCH] Update copyright notice. (find-dired): Offer to kill a running `find'. --- lisp/find-dired.el | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lisp/find-dired.el b/lisp/find-dired.el index a6f560af25e..e39d58c8c4b 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el @@ -1,6 +1,6 @@ ;;; find-dired.el --- run a `find' command and dired the output -;; Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1995, 2000 Free Software Foundation, Inc. ;; Author: Roland McGrath , ;; Sebastian Kremer @@ -36,8 +36,7 @@ (defcustom find-dired-find-program "find" "Program used to find files." :group 'dired - :type 'file - ) + :type 'file) ;; find's -ls corresponds to these switches. ;; Note -b, at least GNU find quotes spaces etc. in filenames @@ -92,6 +91,21 @@ as the final argument." (or (file-directory-p dir) (error "find-dired needs a directory: %s" dir)) (switch-to-buffer (get-buffer-create "*Find*")) + + ;; See if there's still a `find' running, and offer to kill + ;; it first, if it is. + (let ((find (get-buffer-process (current-buffer)))) + (when find + (if (or (not (eq (process-status find) 'run)) + (yes-or-no-p "A `find' process is running; kill it? ")) + (condition-case nil + (progn + (interrupt-process find) + (sit-for 1) + (delete-process find)) + (error nil)) + (error "Cannot have two processes in `%s' at once" (buffer-name))))) + (widen) (kill-all-local-variables) (setq buffer-read-only nil) -- 2.39.2