annotate lisp/find-dired.el @ 76022:e892213b9815

(w32_set_scroll_bar_thumb): Don't resize scroll-bar handle while dragging, except when we get close to eob. Fix position and size calculations so we don't scroll backwards just by clicking on the handle.
author Kim F. Storm <storm@cua.dk>
date Mon, 19 Feb 2007 14:45:39 +0000
parents e3694f1cb928
children 42a55193213f 95d0cdf160ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2230
6314334d7c2b Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1225
diff changeset
1 ;;; find-dired.el --- run a `find' command and dired the output
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
2
74439
ddcbd2c1b70d Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 72555
diff changeset
3 ;; Copyright (C) 1992, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
75347
e3694f1cb928 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74439
diff changeset
4 ;; 2005, 2006, 2007 Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
5
25278
cbe304a26771 Fix maintainer address.
Karl Heuer <kwzh@gnu.org>
parents: 22630
diff changeset
6 ;; Author: Roland McGrath <roland@gnu.org>,
1225
e16f52a7c9f9 New version from sk. Further hacked:
Roland McGrath <roland@gnu.org>
parents: 1183
diff changeset
7 ;; Sebastian Kremer <sk@thp.uni-koeln.de>
21057
9b9c929675eb Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 20597
diff changeset
8 ;; Maintainer: FSF
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
9 ;; Keywords: unix
294
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
10
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
11 ;; This file is part of GNU Emacs.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
12
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
13 ;; GNU Emacs is free software; you can redistribute it and/or modify
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
15 ;; the Free Software Foundation; either version 2, or (at your option)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
16 ;; any later version.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
17
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
18 ;; GNU Emacs is distributed in the hope that it will be useful,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
21 ;; GNU General Public License for more details.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
22
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
23 ;; You should have received a copy of the GNU General Public License
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12485
diff changeset
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64091
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 59996
diff changeset
25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 59996
diff changeset
26 ;; Boston, MA 02110-1301, USA.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
27
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 30455
diff changeset
28 ;;; Commentary:
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 30455
diff changeset
29
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
30 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
31
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
32 (require 'dired)
1225
e16f52a7c9f9 New version from sk. Further hacked:
Roland McGrath <roland@gnu.org>
parents: 1183
diff changeset
33
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
34 (defgroup find-dired nil
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
35 "Run a `find' command and dired the output."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
36 :group 'dired
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
37 :prefix "find-")
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
38
26042
1eb2f529058f (find-dired-find-program): Added this variable.
Peter Breton <pbreton@attbi.com>
parents: 25278
diff changeset
39 (defcustom find-dired-find-program "find"
1eb2f529058f (find-dired-find-program): Added this variable.
Peter Breton <pbreton@attbi.com>
parents: 25278
diff changeset
40 "Program used to find files."
1eb2f529058f (find-dired-find-program): Added this variable.
Peter Breton <pbreton@attbi.com>
parents: 25278
diff changeset
41 :group 'dired
30455
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
42 :type 'file)
26042
1eb2f529058f (find-dired-find-program): Added this variable.
Peter Breton <pbreton@attbi.com>
parents: 25278
diff changeset
43
11035
97da4cb32d03 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 10929
diff changeset
44 ;; find's -ls corresponds to these switches.
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
45 ;; Note -b, at least GNU find quotes spaces etc. in filenames
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
46 ;;;###autoload
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
47 (defcustom find-ls-option
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
48 (if (eq system-type 'berkeley-unix) '("-ls" . "-gilsb")
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
49 '("-exec ls -ld {} \\;" . "-ld"))
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
50 "*Description of the option to `find' to produce an `ls -l'-type listing.
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
51 This is a cons of two strings (FIND-OPTION . LS-SWITCHES). FIND-OPTION
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
52 gives the option (or options) to `find' that produce the desired output.
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
53 LS-SWITCHES is a list of `ls' switches to tell dired how to parse the output."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
54 :type '(cons (string :tag "Find Option")
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
55 (string :tag "Ls Switches"))
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
56 :group 'find-dired)
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
57
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
58 ;;;###autoload
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
59 (defcustom find-ls-subdir-switches "-al"
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
60 "`ls' switches for inserting subdirectories in `*Find*' buffers.
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
61 This should contain the \"-l\" switch.
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
62 Use the \"-F\" or \"-b\" switches if and only if you also use
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
63 them for `find-ls-option'."
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
64 :type 'string
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
65 :group 'find-dired
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 55940
diff changeset
66 :version "22.1")
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
67
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
68 ;;;###autoload
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
69 (defcustom find-grep-options
16569
a3c07728832a (find-grep-options): Treat solaris, irix like BSD.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
70 (if (or (eq system-type 'berkeley-unix)
a3c07728832a (find-grep-options): Treat solaris, irix like BSD.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
71 (string-match "solaris2" system-configuration)
a3c07728832a (find-grep-options): Treat solaris, irix like BSD.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
72 (string-match "irix" system-configuration))
a3c07728832a (find-grep-options): Treat solaris, irix like BSD.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
73 "-s" "-q")
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
74 "*Option to grep to be as silent as possible.
10168
64163654c255 (find-grep-options): Use -q on non-BSD systems.
Richard M. Stallman <rms@gnu.org>
parents: 10024
diff changeset
75 On Berkeley systems, this is `-s'; on Posix, and with GNU grep, `-q' does it.
20597
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
76 On other systems, the closest you can come is to use `-l'."
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
77 :type 'string
886039ba7b3e Customized.
Andreas Schwab <schwab@suse.de>
parents: 18580
diff changeset
78 :group 'find-dired)
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
79
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
80 (defvar find-args nil
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
81 "Last arguments given to `find' by \\[find-dired].")
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
82
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
83 ;; History of find-args values entered in the minibuffer.
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
84 (defvar find-args-history nil)
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
85
48490
3531509372aa (find-dired): Set dired-sort-inhibit to t buffer-locally.
Richard M. Stallman <rms@gnu.org>
parents: 45382
diff changeset
86 (defvar dired-sort-inhibit)
3531509372aa (find-dired): Set dired-sort-inhibit to t buffer-locally.
Richard M. Stallman <rms@gnu.org>
parents: 45382
diff changeset
87
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
88 ;;;###autoload
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
89 (defun find-dired (dir args)
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
90 "Run `find' and go into Dired mode on a buffer of the output.
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
91 The command run (after changing into DIR) is
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
92
16823
4fa015c0a620 (find-dired): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 16569
diff changeset
93 find . \\( ARGS \\) -ls
4fa015c0a620 (find-dired): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 16569
diff changeset
94
4fa015c0a620 (find-dired): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 16569
diff changeset
95 except that the variable `find-ls-option' specifies what to use
4fa015c0a620 (find-dired): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 16569
diff changeset
96 as the final argument."
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
97 (interactive (list (read-file-name "Run find in directory: " nil "" t)
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
98 (read-string "Run find (with args): " find-args
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
99 '(find-args-history . 1))))
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
100 (let ((dired-buffers dired-buffers))
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
101 ;; Expand DIR ("" means default-directory), and make sure it has a
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
102 ;; trailing slash.
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
103 (setq dir (file-name-as-directory (expand-file-name dir)))
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
104 ;; Check that it's really a directory.
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
105 (or (file-directory-p dir)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
106 (error "find-dired needs a directory: %s" dir))
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
107 (switch-to-buffer (get-buffer-create "*Find*"))
30455
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
108
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
109 ;; See if there's still a `find' running, and offer to kill
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
110 ;; it first, if it is.
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
111 (let ((find (get-buffer-process (current-buffer))))
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
112 (when find
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
113 (if (or (not (eq (process-status find) 'run))
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
114 (yes-or-no-p "A `find' process is running; kill it? "))
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
115 (condition-case nil
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
116 (progn
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
117 (interrupt-process find)
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
118 (sit-for 1)
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
119 (delete-process find))
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
120 (error nil))
1130a792b2f7 Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 26042
diff changeset
121 (error "Cannot have two processes in `%s' at once" (buffer-name)))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48490
diff changeset
122
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
123 (widen)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
124 (kill-all-local-variables)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
125 (setq buffer-read-only nil)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
126 (erase-buffer)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
127 (setq default-directory dir
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
128 find-args args ; save for next interactive call
26042
1eb2f529058f (find-dired-find-program): Added this variable.
Peter Breton <pbreton@attbi.com>
parents: 25278
diff changeset
129 args (concat find-dired-find-program " . "
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
130 (if (string= args "")
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
131 ""
72555
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
132 (concat
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
133 (shell-quote-argument "(")
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
134 " " args " "
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
135 (shell-quote-argument ")")
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
136 " "))
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
137 (if (equal (car find-ls-option) "-exec ls -ld {} \\;")
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
138 (concat "-exec ls -ld "
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
139 (shell-quote-argument "{}")
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
140 " "
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
141 (shell-quote-argument ";"))
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
142 (car find-ls-option))))
54316
0b81a282eca3 * find-dired.el (find-dired): Call `shell-command' instead of
Michael Albinus <michael.albinus@gmx.de>
parents: 53404
diff changeset
143 ;; Start the find process.
0b81a282eca3 * find-dired.el (find-dired): Call `shell-command' instead of
Michael Albinus <michael.albinus@gmx.de>
parents: 53404
diff changeset
144 (shell-command (concat args "&") (current-buffer))
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
145 ;; The next statement will bomb in classic dired (no optional arg allowed)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
146 (dired-mode dir (cdr find-ls-option))
53404
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
147 (let ((map (make-sparse-keymap)))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
148 (set-keymap-parent map (current-local-map))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
149 (define-key map "\C-c\C-k" 'kill-find)
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
150 (use-local-map map))
48490
3531509372aa (find-dired): Set dired-sort-inhibit to t buffer-locally.
Richard M. Stallman <rms@gnu.org>
parents: 45382
diff changeset
151 (make-local-variable 'dired-sort-inhibit)
3531509372aa (find-dired): Set dired-sort-inhibit to t buffer-locally.
Richard M. Stallman <rms@gnu.org>
parents: 45382
diff changeset
152 (setq dired-sort-inhibit t)
45382
374dfaadcd0f (find-dired): Implement revert-buffer-function.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44847
diff changeset
153 (set (make-local-variable 'revert-buffer-function)
374dfaadcd0f (find-dired): Implement revert-buffer-function.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44847
diff changeset
154 `(lambda (ignore-auto noconfirm)
374dfaadcd0f (find-dired): Implement revert-buffer-function.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44847
diff changeset
155 (find-dired ,dir ,find-args)))
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
156 ;; Set subdir-alist so that Tree Dired will work:
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
157 (if (fboundp 'dired-simple-subdir-alist)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
158 ;; will work even with nested dired format (dired-nstd.el,v 1.15
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
159 ;; and later)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
160 (dired-simple-subdir-alist)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
161 ;; else we have an ancient tree dired (or classic dired, where
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48490
diff changeset
162 ;; this does no harm)
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
163 (set (make-local-variable 'dired-subdir-alist)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
164 (list (cons default-directory (point-min-marker)))))
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
165 (set (make-local-variable 'dired-subdir-switches) find-ls-subdir-switches)
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
166 (setq buffer-read-only nil)
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
167 ;; Subdir headlerline must come first because the first marker in
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
168 ;; subdir-alist points there.
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
169 (insert " " dir ":\n")
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
170 ;; Make second line a ``find'' line in analogy to the ``total'' or
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48490
diff changeset
171 ;; ``wildcard'' line.
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
172 (insert " " args "\n")
53404
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
173 (setq buffer-read-only t)
54316
0b81a282eca3 * find-dired.el (find-dired): Call `shell-command' instead of
Michael Albinus <michael.albinus@gmx.de>
parents: 53404
diff changeset
174 (let ((proc (get-buffer-process (current-buffer))))
22630
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
175 (set-process-filter proc (function find-dired-filter))
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
176 (set-process-sentinel proc (function find-dired-sentinel))
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
177 ;; Initialize the process marker; it is used by the filter.
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
178 (move-marker (process-mark proc) 1 (current-buffer)))
e4a895537576 (find-dired): Bind dired-buffers so it can't change. Use abbreviate-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 21057
diff changeset
179 (setq mode-line-process '(":%s"))))
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
180
53404
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
181 (defun kill-find ()
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
182 "Kill the `find' process running in the current buffer."
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
183 (interactive)
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
184 (let ((find (get-buffer-process (current-buffer))))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
185 (and find (eq (process-status find) 'run)
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
186 (eq (process-filter find) (function find-dired-filter))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
187 (condition-case nil
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
188 (delete-process find)
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
189 (error nil)))))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
190
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
191 ;;;###autoload
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
192 (defun find-name-dired (dir pattern)
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
193 "Search DIR recursively for files matching the globbing pattern PATTERN,
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
194 and run dired on those files.
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
195 PATTERN is a shell wildcard (not an Emacs regexp) and need not be quoted.
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
196 The command run (after changing into DIR) is
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
197
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
198 find . -name 'PATTERN' -ls"
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
199 (interactive
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
200 "DFind-name (directory): \nsFind-name (filename wildcard): ")
44847
f19c8ff457df (find-name-dired): Don't quote pattern twice.
Andreas Schwab <schwab@suse.de>
parents: 43775
diff changeset
201 (find-dired dir (concat "-name " (shell-quote-argument pattern))))
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
202
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
203 ;; This functionality suggested by
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
204 ;; From: oblanc@watcgl.waterloo.edu (Olivier Blanc)
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
205 ;; Subject: find-dired, lookfor-dired
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
206 ;; Date: 10 May 91 17:50:00 GMT
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
207 ;; Organization: University of Waterloo
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
208
2571
b65cf676a09b All fsets changed to defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2230
diff changeset
209 (defalias 'lookfor-dired 'find-grep-dired)
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
210 ;;;###autoload
43644
6046fb03f1af (find-grep-dired): Rename arg to `regexp'.
Richard M. Stallman <rms@gnu.org>
parents: 43643
diff changeset
211 (defun find-grep-dired (dir regexp)
6046fb03f1af (find-grep-dired): Rename arg to `regexp'.
Richard M. Stallman <rms@gnu.org>
parents: 43643
diff changeset
212 "Find files in DIR containing a regexp REGEXP and start Dired on output.
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
213 The command run (after changing into DIR) is
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
214
43644
6046fb03f1af (find-grep-dired): Rename arg to `regexp'.
Richard M. Stallman <rms@gnu.org>
parents: 43643
diff changeset
215 find . -exec grep -s -e REGEXP {} \\\; -ls
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
216
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
217 Thus ARG can also contain additional grep options."
10168
64163654c255 (find-grep-options): Use -q on non-BSD systems.
Richard M. Stallman <rms@gnu.org>
parents: 10024
diff changeset
218 (interactive "DFind-grep (directory): \nsFind-grep (grep regexp): ")
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
219 ;; find -exec doesn't allow shell i/o redirections in the command,
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
220 ;; or we could use `grep -l >/dev/null'
18580
717e09103d06 (find-grep-dired): Use -type f.
Richard M. Stallman <rms@gnu.org>
parents: 16823
diff changeset
221 ;; We use -type f, not ! -type d, to avoid getting screwed
717e09103d06 (find-grep-dired): Use -type f.
Richard M. Stallman <rms@gnu.org>
parents: 16823
diff changeset
222 ;; by FIFOs and devices. I'm not sure what's best to do
717e09103d06 (find-grep-dired): Use -type f.
Richard M. Stallman <rms@gnu.org>
parents: 16823
diff changeset
223 ;; about symlinks, so as far as I know this is not wrong.
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
224 (find-dired dir
43643
54f8be735591 (find-grep-dired): Call shell-quote-argument. Specify the -e option.
Richard M. Stallman <rms@gnu.org>
parents: 42359
diff changeset
225 (concat "-type f -exec grep " find-grep-options " -e "
43644
6046fb03f1af (find-grep-dired): Rename arg to `regexp'.
Richard M. Stallman <rms@gnu.org>
parents: 43643
diff changeset
226 (shell-quote-argument regexp)
72555
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
227 " "
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
228 (shell-quote-argument "{}")
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
229 " "
20f4483c11ca (find-dired): Use shell-quote-argument to properly
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
230 (shell-quote-argument ";"))))
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
231
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
232 (defun find-dired-filter (proc string)
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
233 ;; Filter for \\[find-dired] processes.
53404
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
234 (let ((buf (process-buffer proc))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
235 (inhibit-read-only t))
294
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
236 (if (buffer-name buf) ; not killed?
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
237 (save-excursion
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
238 (set-buffer buf)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
239 (save-restriction
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
240 (widen)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
241 (save-excursion
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
242 (let ((buffer-read-only nil)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
243 (end (point-max)))
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
244 (goto-char end)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
245 (insert string)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
246 (goto-char end)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
247 (or (looking-at "^")
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
248 (forward-line 1))
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
249 (while (looking-at "^")
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
250 (insert " ")
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
251 (forward-line 1))
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
252 ;; Convert ` ./FILE' to ` FILE'
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
253 ;; This would lose if the current chunk of output
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
254 ;; starts or ends within the ` ./', so back up a bit:
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
255 (goto-char (- end 3)) ; no error if < 0
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 294
diff changeset
256 (while (search-forward " ./" nil t)
10929
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
257 (delete-region (point) (- (point) 2)))
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
258 ;; Find all the complete lines in the unprocessed
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
259 ;; output and process it to add text properties.
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
260 (goto-char end)
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
261 (if (search-backward "\n" (process-mark proc) t)
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
262 (progn
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
263 (dired-insert-set-properties (process-mark proc)
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
264 (1+ (point)))
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
265 (move-marker (process-mark proc) (1+ (point)))))
8102a6447ea0 (find-ls-option): Doc fix: now a cons.
Roland McGrath <roland@gnu.org>
parents: 10168
diff changeset
266 ))))
294
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
267 ;; The buffer has been killed.
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
268 (delete-process proc))))
292
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
269
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
270 (defun find-dired-sentinel (proc state)
cab78578e745 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
271 ;; Sentinel for \\[find-dired] processes.
53404
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
272 (let ((buf (process-buffer proc))
5e98e2525d62 (kill-find): New command.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
273 (inhibit-read-only t))
294
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
274 (if (buffer-name buf)
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
275 (save-excursion
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
276 (set-buffer buf)
3189
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
277 (let ((buffer-read-only nil))
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
278 (save-excursion
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
279 (goto-char (point-max))
42359
e6f53dd04c68 Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 42358
diff changeset
280 (insert "\n find " state)
3189
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
281 (forward-char -1) ;Back up before \n at end of STATE.
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
282 (insert " at " (substring (current-time-string) 0 19))
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
283 (forward-char 1)
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
284 (setq mode-line-process
7073
c662b47cda3f (find-dired, find-dired-sentinel):
Richard M. Stallman <rms@gnu.org>
parents: 5460
diff changeset
285 (concat ":"
3189
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
286 (symbol-name (process-status proc))))
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
287 ;; Since the buffer and mode line will show that the
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
288 ;; process is dead, we can delete it now. Otherwise it
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
289 ;; will stay around until M-x list-processes.
77efda0d2b31 (find-dired-sentinel): Write a line describing death.
Roland McGrath <roland@gnu.org>
parents: 2571
diff changeset
290 (delete-process proc)
11585
e28ae3856c1d (find-dired-sentinel): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 11035
diff changeset
291 (force-mode-line-update)))
294
97aa6a6f9aa5 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 292
diff changeset
292 (message "find-dired %s finished." (current-buffer))))))
55940
793fa6e18e9d (find-ls-subdir-switches): New user option.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54316
diff changeset
293
1225
e16f52a7c9f9 New version from sk. Further hacked:
Roland McGrath <roland@gnu.org>
parents: 1183
diff changeset
294
584
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 474
diff changeset
295 (provide 'find-dired)
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 474
diff changeset
296
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49588
diff changeset
297 ;;; arch-tag: 8edece95-af00-4221-bc74-a4bd2f75f9b0
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
298 ;;; find-dired.el ends here