annotate lisp/dired.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents f5e7d094d9d8
children bec49af30c2f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2229
bd3c525fa6fc Added standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1755
diff changeset
1 ;;; dired.el --- directory-browsing commands
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
2
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
3 ;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 2000,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 106657
diff changeset
4 ;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
101546
83a2261dc0ed Comment.
Glenn Morris <rgm@gnu.org>
parents: 100939
diff changeset
5 ;; Free Software Foundation, Inc.
878
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
6
5803
4cd9bd412e4a (dired-listing-switches): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 5483
diff changeset
7 ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
4cd9bd412e4a (dired-listing-switches): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 5483
diff changeset
8 ;; Maintainer: FSF
39015
b2fc23ab198a Add Keywords header.
Gerd Moellmann <gerd@gnu.org>
parents: 38990
diff changeset
9 ;; Keywords: files
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 109553
diff changeset
10 ;; Package: emacs
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
11
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
13
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94651
diff changeset
14 ;; GNU Emacs is free software: you can redistribute it and/or modify
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94651
diff changeset
16 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94651
diff changeset
17 ;; (at your option) any later version.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
18
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
22 ;; GNU General Public License for more details.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
23
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94651
diff changeset
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
27 ;;; Commentary:
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
28
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2229
diff changeset
29 ;; This is a major mode for directory browsing and editing. It is
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2229
diff changeset
30 ;; documented in the Emacs manual.
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2229
diff changeset
31
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
32 ;; Rewritten in 1990/1991 to add tree features, file marking and
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
33 ;; sorting by Sebastian Kremer <sk@thp.uni-koeln.de>.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
34 ;; Finished up by rms in 1992.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
35
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
36 ;;; Code:
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
37
94485
a01f79200343 Require 'cl.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94480
diff changeset
38 (eval-when-compile (require 'cl))
a01f79200343 Require 'cl.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94480
diff changeset
39
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
40 ;;; Customizable variables
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
41
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
42 (defgroup dired nil
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
43 "Directory editing."
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
44 :link '(custom-manual "(emacs)Dired")
47181
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
45 :group 'files)
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
46
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
47 (defgroup dired-mark nil
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
48 "Handling marks in Dired."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
49 :prefix "dired-"
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
50 :group 'dired)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
51
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
52
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
53 ;;;###autoload
105939
a0f778f4a995 * term/x-win.el (x-gtk-stock-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105933
diff changeset
54 (defcustom dired-listing-switches (purecopy "-al")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
55 "Switches passed to `ls' for Dired. MUST contain the `l' option.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
56 May contain all other options that don't contradict `-l';
5803
4cd9bd412e4a (dired-listing-switches): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 5483
diff changeset
57 may contain even `F', `b', `i' and `s'. See also the variable
41307
db9182517100 (dired-listing-switches): Mention in the doc string
Eli Zaretskii <eliz@gnu.org>
parents: 41092
diff changeset
58 `dired-ls-F-marks-symlinks' concerning the `F' switch.
db9182517100 (dired-listing-switches): Mention in the doc string
Eli Zaretskii <eliz@gnu.org>
parents: 41092
diff changeset
59 On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
db9182517100 (dired-listing-switches): Mention in the doc string
Eli Zaretskii <eliz@gnu.org>
parents: 41092
diff changeset
60 some of the `ls' switches are not supported; see the doc string of
75450
d289216cf933 (dired-listing-switches): Fix doc typo.
Glenn Morris <rgm@gnu.org>
parents: 75347
diff changeset
61 `insert-directory' in `ls-lisp.el' for more details."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
62 :type 'string
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
63 :group 'dired)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
64
55937
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
65 (defvar dired-subdir-switches nil
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
66 "If non-nil, switches passed to `ls' for inserting subdirectories.
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
67 If nil, `dired-listing-switches' is used.")
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
68
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
69 ; Don't use absolute file names as /bin should be in any PATH and people
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
70 ; may prefer /usr/local/gnu/bin or whatever. However, chown is
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
71 ; usually not in PATH.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
72
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
73 ;;;###autoload
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
74 (defvar dired-chown-program
105939
a0f778f4a995 * term/x-win.el (x-gtk-stock-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105933
diff changeset
75 (purecopy
87595
4c6c79916238 * configure.in: Remove references to unsupported systems.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87139
diff changeset
76 (if (memq system-type '(hpux usg-unix-v irix linux gnu/linux cygwin))
15348
8d78b06fbb46 (dired-chown-program): Try /usr/sbin/chown.
Richard M. Stallman <rms@gnu.org>
parents: 14947
diff changeset
77 "chown"
8d78b06fbb46 (dired-chown-program): Try /usr/sbin/chown.
Richard M. Stallman <rms@gnu.org>
parents: 14947
diff changeset
78 (if (file-exists-p "/usr/sbin/chown")
8d78b06fbb46 (dired-chown-program): Try /usr/sbin/chown.
Richard M. Stallman <rms@gnu.org>
parents: 14947
diff changeset
79 "/usr/sbin/chown"
105939
a0f778f4a995 * term/x-win.el (x-gtk-stock-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105933
diff changeset
80 "/etc/chown")))
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3580
diff changeset
81 "Name of chown command (usually `chown' or `/etc/chown').")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
82
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
83 (defvar dired-use-ls-dired (not (not (string-match "gnu" system-configuration)))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
84 "Non-nil means Dired should use `ls --dired'.")
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
85
21743
8def83521606 (dired-chmod-program) [windows-nt]: Use chmod.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21690
diff changeset
86 (defvar dired-chmod-program "chmod"
8def83521606 (dired-chmod-program) [windows-nt]: Use chmod.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21690
diff changeset
87 "Name of chmod command (usually `chmod').")
11396
9c92e5ea420a (dired-chmod-program): Defined.
Karl Heuer <kwzh@gnu.org>
parents: 11151
diff changeset
88
54663
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
89 (defvar dired-touch-program "touch"
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
90 "Name of touch command (usually `touch').")
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
91
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
92 (defcustom dired-ls-F-marks-symlinks nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
93 "Informs Dired about how `ls -lF' marks symbolic links.
14146
36471d582fb2 (dired-ls-F-marks-symlinks): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 14107
diff changeset
94 Set this to t if `ls' (or whatever program is specified by
36471d582fb2 (dired-ls-F-marks-symlinks): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 14107
diff changeset
95 `insert-directory-program') with `-lF' marks the symbolic link
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
96 itself with a trailing @ (usually the case under Ultrix).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
97
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
98 Example: if `ln -s foo bar; ls -F bar' gives `bar -> foo', set it to
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
99 nil (the default), if it gives `bar@ -> foo', set it to t.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
100
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
101 Dired checks if there is really a @ appended. Thus, if you have a
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
102 marking `ls' program on one host and a non-marking on another host, and
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
103 don't care about symbolic links which really end in a @, you can
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
104 always set this variable to t."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
105 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
106 :group 'dired-mark)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
107
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
108 ;;;###autoload
105957
25e1d7e37015 * widget.el (define-widget): Purecopy the docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105939
diff changeset
109 (defcustom dired-trivial-filenames (purecopy "^\\.\\.?$\\|^#")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
110 "Regexp of files to skip when finding first file of a directory.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
111 A value of nil means move to the subdir line.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
112 A value of t means move to first file."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
113 :type '(choice (const :tag "Move to subdir" nil)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
114 (const :tag "Move to first" t)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
115 regexp)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
116 :group 'dired)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
117
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
118 (defcustom dired-keep-marker-rename t
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
119 ;; Use t as default so that moved files "take their markers with them".
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
120 "Controls marking of renamed files.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
121 If t, files keep their previous marks when they are renamed.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
122 If a character, renamed files (whether previously marked or not)
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
123 are afterward marked with that character."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
124 :type '(choice (const :tag "Keep" t)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
125 (character :tag "Mark"))
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
126 :group 'dired-mark)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
127
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
128 (defcustom dired-keep-marker-copy ?C
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
129 "Controls marking of copied files.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
130 If t, copied files are marked if and as the corresponding original files were.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
131 If a character, copied files are unconditionally marked with that character."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
132 :type '(choice (const :tag "Keep" t)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
133 (character :tag "Mark"))
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
134 :group 'dired-mark)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
135
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
136 (defcustom dired-keep-marker-hardlink ?H
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
137 "Controls marking of newly made hard links.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
138 If t, they are marked if and as the files linked to were marked.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
139 If a character, new links are unconditionally marked with that character."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
140 :type '(choice (const :tag "Keep" t)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
141 (character :tag "Mark"))
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
142 :group 'dired-mark)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
143
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
144 (defcustom dired-keep-marker-symlink ?Y
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
145 "Controls marking of newly made symbolic links.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
146 If t, they are marked if and as the files linked to were marked.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
147 If a character, new links are unconditionally marked with that character."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
148 :type '(choice (const :tag "Keep" t)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
149 (character :tag "Mark"))
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
150 :group 'dired-mark)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
151
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
152 (defcustom dired-dwim-target nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
153 "If non-nil, Dired tries to guess a default target directory.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
154 This means: if there is a dired buffer displayed in the next window,
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
155 use its current subdir, instead of the current subdir of this dired buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
156
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
157 The target is used in the prompt for file copy, rename etc."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
158 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
159 :group 'dired)
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
160
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
161 (defcustom dired-copy-preserve-time t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
162 "If non-nil, Dired preserves the last-modified time in a file copy.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
163 \(This works on only some systems.)"
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
164 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 17811
diff changeset
165 :group 'dired)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
166
42245
30a233f73e77 (dired-free-space-program, dired-free-space-args):
Eli Zaretskii <eliz@gnu.org>
parents: 42206
diff changeset
167 ; These variables were deleted and the replacements are on files.el.
30a233f73e77 (dired-free-space-program, dired-free-space-args):
Eli Zaretskii <eliz@gnu.org>
parents: 42206
diff changeset
168 ; We leave aliases behind for back-compatibility.
30a233f73e77 (dired-free-space-program, dired-free-space-args):
Eli Zaretskii <eliz@gnu.org>
parents: 42206
diff changeset
169 (defvaralias 'dired-free-space-program 'directory-free-space-program)
30a233f73e77 (dired-free-space-program, dired-free-space-args):
Eli Zaretskii <eliz@gnu.org>
parents: 42206
diff changeset
170 (defvaralias 'dired-free-space-args 'directory-free-space-args)
30a233f73e77 (dired-free-space-program, dired-free-space-args):
Eli Zaretskii <eliz@gnu.org>
parents: 42206
diff changeset
171
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
172 ;;; Hook variables
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
173
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
174 (defcustom dired-load-hook nil
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
175 "Run after loading Dired.
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
176 You can customize key bindings or load extensions with this."
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
177 :group 'dired
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
178 :type 'hook)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
179
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
180 (defcustom dired-mode-hook nil
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
181 "Run at the very end of `dired-mode'."
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
182 :group 'dired
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
183 :type 'hook)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
184
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
185 (defcustom dired-before-readin-hook nil
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
186 "This hook is run before a dired buffer is read in (created or reverted)."
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
187 :group 'dired
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
188 :type 'hook)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
189
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
190 (defcustom dired-after-readin-hook nil
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
191 "Hook run after each time a file or directory is read by Dired.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
192 After each listing of a file or directory, this hook is run
43107
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
193 with the buffer narrowed to the listing."
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
194 :group 'dired
60ed6d7abdfe (dired-load-hook, dired-mode-hook)
Eli Zaretskii <eliz@gnu.org>
parents: 42690
diff changeset
195 :type 'hook)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
196 ;; Note this can't simply be run inside function `dired-ls' as the hook
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
197 ;; functions probably depend on the dired-subdir-alist to be OK.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
198
62240
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
199 (defcustom dired-dnd-protocol-alist
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
200 '(("^file:///" . dired-dnd-handle-local-file)
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
201 ("^file://" . dired-dnd-handle-file)
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
202 ("^file:" . dired-dnd-handle-local-file))
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
203 "The functions to call when a drop in `dired-mode' is made.
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
204 See `dnd-protocol-alist' for more information. When nil, behave
69783
d1bfd9018628 (dired-dnd-protocol-alist): Fix typo.
Romain Francoise <romain@orebokech.com>
parents: 69779
diff changeset
205 as in other buffers. Changing this option is effective only for
69779
865de55024d5 (dired-dnd-protocol-alist): Mention that change does
Reiner Steib <Reiner.Steib@gmx.de>
parents: 68816
diff changeset
206 new dired buffers."
62240
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
207 :type '(choice (repeat (cons (regexp) (function)))
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
208 (const :tag "Behave as in other buffers" nil))
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
209 :version "22.1"
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
210 :group 'dired)
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
211
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
212 ;; Internal variables
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
213
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
214 (defvar dired-marker-char ?* ; the answer is 42
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
215 ;; so that you can write things like
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
216 ;; (let ((dired-marker-char ?X))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
217 ;; ;; great code using X markers ...
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
218 ;; )
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
219 ;; For example, commands operating on two sets of files, A and B.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
220 ;; Or marking files with digits 0-9. This could implicate
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
221 ;; concentric sets or an order for the marked files.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
222 ;; The code depends on dynamic scoping on the marker char.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
223 "In Dired, the current mark character.
64193
7fc36b055c09 (dired-marker-char): Avoid quotations for `do' and `mark'
Juri Linkov <juri@jurta.org>
parents: 64091
diff changeset
224 This is what the do-commands look for, and what the mark-commands store.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
225
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
226 (defvar dired-del-marker ?D
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
227 "Character used to flag files for deletion.")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
228
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
229 (defvar dired-shrink-to-fit t
878
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
230 ;; I see no reason ever to make this nil -- rms.
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
231 ;; (> baud-rate search-slow-speed)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
232 "Non-nil means Dired shrinks the display buffer to fit the marked files.")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
233
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
234 (defvar dired-flagging-regexp nil);; Last regexp used to flag files.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
235
878
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
236 (defvar dired-file-version-alist)
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
237
49772
b774f5818dbd (dired-directory): Add autoload cookie.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 49625
diff changeset
238 ;;;###autoload
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
239 (defvar dired-directory nil
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
240 "The directory name or wildcard spec that this dired directory lists.
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
241 Local to each dired buffer. May be a list, in which case the car is the
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
242 directory name and the cdr is the list of files to mention.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
243 The directory name must be absolute, but need not be fully expanded.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
244
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
245 (defvar dired-actual-switches nil
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
246 "The value of `dired-listing-switches' used to make this buffer's text.")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
247
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
248 (defvar dired-re-inode-size "[0-9 \t]*"
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
249 "Regexp for optional initial inode and file size as made by `ls -i -s'.")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
250
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
251 ;; These regexps must be tested at beginning-of-line, but are also
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
252 ;; used to search for next matches, so neither omitting "^" nor
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
253 ;; replacing "^" by "\n" (to make it slightly faster) will work.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
254
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
255 (defvar dired-re-mark "^[^ \n]")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
256 ;; "Regexp matching a marked line.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
257 ;; Important: the match ends just after the marker."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
258 (defvar dired-re-maybe-mark "^. ")
25558
76420959ca81 (dired-re-dir, dired-re-sym): Don't match DOS drive
Eli Zaretskii <eliz@gnu.org>
parents: 25415
diff changeset
259 ;; The [^:] part after "d" and "l" is to avoid confusion with the
76420959ca81 (dired-re-dir, dired-re-sym): Don't match DOS drive
Eli Zaretskii <eliz@gnu.org>
parents: 25415
diff changeset
260 ;; DOS/Windows-style drive letters in directory names, like in "d:/foo".
76420959ca81 (dired-re-dir, dired-re-sym): Don't match DOS drive
Eli Zaretskii <eliz@gnu.org>
parents: 25415
diff changeset
261 (defvar dired-re-dir (concat dired-re-maybe-mark dired-re-inode-size "d[^:]"))
76420959ca81 (dired-re-dir, dired-re-sym): Don't match DOS drive
Eli Zaretskii <eliz@gnu.org>
parents: 25415
diff changeset
262 (defvar dired-re-sym (concat dired-re-maybe-mark dired-re-inode-size "l[^:]"))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
263 (defvar dired-re-exe;; match ls permission string of an executable file
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
264 (mapconcat (function
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
265 (lambda (x)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
266 (concat dired-re-maybe-mark dired-re-inode-size x)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
267 '("-[-r][-w][xs][-r][-w].[-r][-w]."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
268 "-[-r][-w].[-r][-w][xs][-r][-w]."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
269 "-[-r][-w].[-r][-w].[-r][-w][xst]")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
270 "\\|"))
9098
d012275093c1 (dired-re-perms): Accept various file type letters.
Richard M. Stallman <rms@gnu.org>
parents: 9076
diff changeset
271 (defvar dired-re-perms "[-bcdlps][-r][-w].[-r][-w].[-r][-w].")
51539
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
272 (defvar dired-re-dot "^.* \\.\\.?/?$")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
273
55937
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
274 ;; The subdirectory names in the next two lists are expanded.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
275 (defvar dired-subdir-alist nil
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
276 "Association list of subdirectories and their buffer positions.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
277 Each subdirectory has an element: (DIRNAME . STARTMARKER).
1170
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
278 The order of elements is the reverse of the order in the buffer.
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
279 In simple cases, this list contains one element.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
280
55937
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
281 (defvar dired-switches-alist nil
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
282 "Keeps track of which switches to use for inserted subdirectories.
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
283 This is an alist of the form (SUBDIR . SWITCHES).")
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
284 (make-variable-buffer-local 'dired-switches-alist)
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
285
68267
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
286 (defvaralias 'dired-move-to-filename-regexp
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
287 'directory-listing-before-filename-regexp)
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
288
6864
7c689b8065bd (dired-subdir-regexp): Allow a space in dir name.
Richard M. Stallman <rms@gnu.org>
parents: 6817
diff changeset
289 (defvar dired-subdir-regexp "^. \\([^\n\r]+\\)\\(:\\)[\n\r]"
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
290 "Regexp matching a maybe hidden subdirectory line in `ls -lR' output.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
291 Subexpression 1 is the subdirectory proper, no trailing colon.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
292 The match starts at the beginning of the line and ends after the end
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
293 of the line (\\n or \\r).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
294 Subexpression 2 must end right before the \\n or \\r.")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
295
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
296 (defgroup dired-faces nil
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
297 "Faces used by Dired."
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
298 :group 'dired
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
299 :group 'faces)
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
300
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
301 (defface dired-header
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
302 '((t (:inherit font-lock-type-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
303 "Face used for directory headers."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
304 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
305 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
306 (defvar dired-header-face 'dired-header
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
307 "Face name used for directory headers.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
308
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
309 (defface dired-mark
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
310 '((t (:inherit font-lock-constant-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
311 "Face used for dired marks."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
312 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
313 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
314 (defvar dired-mark-face 'dired-mark
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
315 "Face name used for dired marks.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
316
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
317 (defface dired-marked
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
318 '((t (:inherit font-lock-warning-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
319 "Face used for marked files."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
320 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
321 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
322 (defvar dired-marked-face 'dired-marked
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
323 "Face name used for marked files.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
324
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
325 (defface dired-flagged
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
326 '((t (:inherit font-lock-warning-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
327 "Face used for flagged files."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
328 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
329 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
330 (defvar dired-flagged-face 'dired-flagged
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
331 "Face name used for flagged files.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
332
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
333 (defface dired-warning
78759
f85317d85f18 (dired-warning): Inherit from font-lock-warning-face to
Martin Rudalics <rudalics@gmx.at>
parents: 78462
diff changeset
334 ;; Inherit from font-lock-warning-face since with min-colors 8
f85317d85f18 (dired-warning): Inherit from font-lock-warning-face to
Martin Rudalics <rudalics@gmx.at>
parents: 78462
diff changeset
335 ;; font-lock-comment-face is not colored any more.
f85317d85f18 (dired-warning): Inherit from font-lock-warning-face to
Martin Rudalics <rudalics@gmx.at>
parents: 78462
diff changeset
336 '((t (:inherit font-lock-warning-face)))
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
337 "Face used to highlight a part of a buffer that needs user attention."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
338 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
339 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
340 (defvar dired-warning-face 'dired-warning
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
341 "Face name used for a part of a buffer that needs user attention.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
342
80336
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
343 (defface dired-perm-write
79074
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
344 '((((type w32 pc)) :inherit default) ;; These default to rw-rw-rw.
80336
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
345 ;; Inherit from font-lock-comment-delimiter-face since with min-colors 8
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
346 ;; font-lock-comment-face is not colored any more.
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
347 (t (:inherit font-lock-comment-delimiter-face)))
79074
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
348 "Face used to highlight permissions of group- and world-writable files."
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
349 :group 'dired-faces
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
350 :version "22.2")
80336
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
351 (defvar dired-perm-write-face 'dired-perm-write
79074
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
352 "Face name used for permissions of group- and world-writable files.")
6b97f0761688 (dired-warn-writable): New face.
Eli Zaretskii <eliz@gnu.org>
parents: 78759
diff changeset
353
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
354 (defface dired-directory
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
355 '((t (:inherit font-lock-function-name-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
356 "Face used for subdirectories."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
357 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
358 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
359 (defvar dired-directory-face 'dired-directory
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
360 "Face name used for subdirectories.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
361
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
362 (defface dired-symlink
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
363 '((t (:inherit font-lock-keyword-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
364 "Face used for symbolic links."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
365 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
366 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
367 (defvar dired-symlink-face 'dired-symlink
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
368 "Face name used for symbolic links.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
369
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
370 (defface dired-ignored
63052
ac4dcbb00c51 * dired.el (dired-ignored): Inherit from `shadow' face.
Juri Linkov <juri@jurta.org>
parents: 62658
diff changeset
371 '((t (:inherit shadow)))
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
372 "Face used for files suffixed with `completion-ignored-extensions'."
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
373 :group 'dired-faces
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59786
diff changeset
374 :version "22.1")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
375 (defvar dired-ignored-face 'dired-ignored
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
376 "Face name used for files suffixed with `completion-ignored-extensions'.")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
377
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
378 (defvar dired-font-lock-keywords
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
379 (list
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
380 ;;
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
381 ;; Dired marks.
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
382 (list dired-re-mark '(0 dired-mark-face))
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
383 ;;
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
384 ;; We make heavy use of MATCH-ANCHORED, since the regexps don't identify the
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
385 ;; file name itself. We search for Dired defined regexps, and then use the
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
386 ;; Dired defined function `dired-move-to-filename' before searching for the
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
387 ;; simple regexp ".+". It is that regexp which matches the file name.
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
388 ;;
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
389 ;; Marked files.
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
390 (list (concat "^[" (char-to-string dired-marker-char) "]")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
391 '(".+" (dired-move-to-filename) nil (0 dired-marked-face)))
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
392 ;;
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
393 ;; Flagged files.
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
394 (list (concat "^[" (char-to-string dired-del-marker) "]")
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
395 '(".+" (dired-move-to-filename) nil (0 dired-flagged-face)))
19320
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
396 ;; People who are paranoid about security would consider this more
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
397 ;; important than other things such as whether it is a directory.
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
398 ;; But we don't want to encourage paranoia, so our default
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
399 ;; should be what's most useful for non-paranoids. -- rms.
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
400 ;;; ;;
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
401 ;;; ;; Files that are group or world writable.
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
402 ;;; (list (concat dired-re-maybe-mark dired-re-inode-size
2e448d41aa55 (dired-font-lock-keywords): Don't specially highlight
Richard M. Stallman <rms@gnu.org>
parents: 18824
diff changeset
403 ;;; "\\([-d]\\(....w....\\|.......w.\\)\\)")
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
404 ;;; '(1 dired-warning-face)
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
405 ;;; '(".+" (dired-move-to-filename) nil (0 dired-warning-face)))
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
406 ;; However, we don't need to highlight the file name, only the
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
407 ;; permissions, to win generally. -- fx.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
408 ;; Fixme: we could also put text properties on the permission
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
409 ;; fields with keymaps to frob the permissions, somewhat a la XEmacs.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
410 (list (concat dired-re-maybe-mark dired-re-inode-size
54685
06ef8e8088f4 (dired-font-lock-keywords): Fix permission regexps.
Juri Linkov <juri@jurta.org>
parents: 54663
diff changeset
411 "[-d]....\\(w\\)....") ; group writable
80336
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
412 '(1 dired-perm-write-face))
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
413 (list (concat dired-re-maybe-mark dired-re-inode-size
54685
06ef8e8088f4 (dired-font-lock-keywords): Fix permission regexps.
Juri Linkov <juri@jurta.org>
parents: 54663
diff changeset
414 "[-d].......\\(w\\).") ; world writable
80336
3c2f95ff2ff3 (dired-warn-writable): Rename to `dired-perm-write'.
Juri Linkov <juri@jurta.org>
parents: 80177
diff changeset
415 '(1 dired-perm-write-face))
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
416 ;;
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
417 ;; Subdirectories.
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
418 (list dired-re-dir
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
419 '(".+" (dired-move-to-filename) nil (0 dired-directory-face)))
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
420 ;;
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
421 ;; Symbolic links.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
422 (list dired-re-sym
54780
1927e78ea49d (dired-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents: 54685
diff changeset
423 '(".+" (dired-move-to-filename) nil (0 dired-symlink-face)))
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
424 ;;
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
425 ;; Files suffixed with `completion-ignored-extensions'.
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
426 '(eval .
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
427 ;; It is quicker to first find just an extension, then go back to the
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
428 ;; start of that file name. So we do this complex MATCH-ANCHORED form.
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
429 (list (concat "\\(" (regexp-opt completion-ignored-extensions) "\\|#\\)$")
62616
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
430 '(".+" (dired-move-to-filename) nil (0 dired-ignored-face))))
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
431 ;;
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
432 ;; Files suffixed with `completion-ignored-extensions'
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
433 ;; plus a character put in by -F.
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
434 '(eval .
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
435 (list (concat "\\(" (regexp-opt completion-ignored-extensions)
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
436 "\\|#\\)[*=|]$")
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
437 '(".+" (progn
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
438 (end-of-line)
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
439 ;; If the last character is not part of the filename,
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
440 ;; move back to the start of the filename
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
441 ;; so it can be fontified.
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
442 ;; Otherwise, leave point at the end of the line;
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
443 ;; that way, nothing is fontified.
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
444 (unless (get-text-property (1- (point)) 'mouse-face)
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
445 (dired-move-to-filename)))
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
446 nil (0 dired-ignored-face))))
100098
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
447 ;;
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
448 ;; Explicitly put the default face on file names ending in a colon to
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
449 ;; avoid fontifying them as directory header.
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
450 (list (concat dired-re-maybe-mark dired-re-inode-size dired-re-perms ".*:$")
100241
1dccd11615ba (dired-font-lock-keywords): Fix last change.
Andreas Schwab <schwab@suse.de>
parents: 100171
diff changeset
451 '(".+" (dired-move-to-filename) nil (0 'default)))
100098
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
452 ;;
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
453 ;; Directory headers.
2705d9a106f9 (dired-font-lock-keywords): Avoid fontifying file names
Andreas Schwab <schwab@suse.de>
parents: 99460
diff changeset
454 (list dired-subdir-regexp '(1 dired-header-face))
62616
1f84b1fd2560 (dired-font-lock-keywords): Fontify files with junk extensions
Richard M. Stallman <rms@gnu.org>
parents: 62439
diff changeset
455 )
16454
76b0d4d3371e Tweak dired-font-lock-keywords.
Simon Marshall <simon@gnu.org>
parents: 16090
diff changeset
456 "Additional expressions to highlight in Dired mode.")
63934
44925622f813 (dnd-protocol-alist): Add defvar.
Richard M. Stallman <rms@gnu.org>
parents: 63052
diff changeset
457
44925622f813 (dnd-protocol-alist): Add defvar.
Richard M. Stallman <rms@gnu.org>
parents: 63052
diff changeset
458 (defvar dnd-protocol-alist)
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
459
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
460 ;;; Macros must be defined before they are used, for the byte compiler.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
461
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
462 (defmacro dired-mark-if (predicate msg)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
463 "Mark all files for which PREDICATE evals to non-nil.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
464 PREDICATE is evaluated on each line, with point at beginning of line.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
465 MSG is a noun phrase for the type of files being marked.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
466 It should end with a noun that can be pluralized by adding `s'.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
467 Return value is the number of files marked, or nil if none were marked."
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
468 `(let ((inhibit-read-only t) count)
41608
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
469 (save-excursion
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
470 (setq count 0)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
471 (if ,msg (message "Marking %ss..." ,msg))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
472 (goto-char (point-min))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
473 (while (not (eobp))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
474 (if ,predicate
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
475 (progn
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
476 (delete-char 1)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
477 (insert dired-marker-char)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
478 (setq count (1+ count))))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
479 (forward-line 1))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
480 (if ,msg (message "%s %s%s %s%s."
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
481 count
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
482 ,msg
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
483 (dired-plural-s count)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
484 (if (eq dired-marker-char ?\040) "un" "")
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
485 (if (eq dired-marker-char dired-del-marker)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
486 "flagged" "marked"))))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 41307
diff changeset
487 (and (> count 0) count)))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
488
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
489 (defmacro dired-map-over-marks (body arg &optional show-progress
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
490 distinguish-one-marked)
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
491 "Eval BODY with point on each marked line. Return a list of BODY's results.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
492 If no marked file could be found, execute BODY on the current line.
99051
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
493 ARG, if non-nil, specifies the files to use instead of the marked files.
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
494 If ARG is an integer, use the next ARG (or previous -ARG, if
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
495 ARG<0) files. In that case, point is dragged along. This is
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
496 so that commands on the next ARG (instead of the marked) files
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
497 can be chained easily.
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
498 For any other non-nil value of ARG, use the current file.
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
499 If optional third arg SHOW-PROGRESS evaluates to non-nil,
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
500 redisplay the dired buffer after each file is processed.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
501 No guarantee is made about the position on the marked line.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
502 BODY must ensure this itself if it depends on this.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
503 Search starts at the beginning of the buffer, thus the car of the list
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
504 corresponds to the line nearest to the buffer's bottom. This
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
505 is also true for (positive and negative) integer values of ARG.
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
506 BODY should not be too long as it is expanded four times.
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
507
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
508 If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
509 return (t FILENAME) instead of (FILENAME)."
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
510 ;;
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
511 ;;Warning: BODY must not add new lines before point - this may cause an
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
512 ;;endless loop.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
513 ;;This warning should not apply any longer, sk 2-Sep-1991 14:10.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
514 `(prog1
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
515 (let ((inhibit-read-only t) case-fold-search found results)
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
516 (if ,arg
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
517 (if (integerp ,arg)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
518 (progn ;; no save-excursion, want to move point.
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
519 (dired-repeat-over-lines
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
520 ,arg
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
521 (function (lambda ()
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
522 (if ,show-progress (sit-for 0))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
523 (setq results (cons ,body results)))))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
524 (if (< ,arg 0)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
525 (nreverse results)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
526 results))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
527 ;; non-nil, non-integer ARG means use current file:
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
528 (list ,body))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
529 (let ((regexp (dired-marker-regexp)) next-position)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
530 (save-excursion
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
531 (goto-char (point-min))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
532 ;; remember position of next marked file before BODY
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
533 ;; can insert lines before the just found file,
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
534 ;; confusing us by finding the same marked file again
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
535 ;; and again and...
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
536 (setq next-position (and (re-search-forward regexp nil t)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
537 (point-marker))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
538 found (not (null next-position)))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
539 (while next-position
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
540 (goto-char next-position)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
541 (if ,show-progress (sit-for 0))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
542 (setq results (cons ,body results))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
543 ;; move after last match
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
544 (goto-char next-position)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
545 (forward-line 1)
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
546 (set-marker next-position nil)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
547 (setq next-position (and (re-search-forward regexp nil t)
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
548 (point-marker)))))
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
549 (if (and ,distinguish-one-marked (= (length results) 1))
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
550 (setq results (cons t results)))
32027
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
551 (if found
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
552 results
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
553 (list ,body)))))
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
554 ;; save-excursion loses, again
638a006b3c47 (dired-map-over-marks): Use modern backquotes and docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31762
diff changeset
555 (dired-move-to-filename)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
556
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
557 (defun dired-get-marked-files (&optional localp arg filter distinguish-one-marked)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
558 "Return the marked files' names as list of strings.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
559 The list is in the same order as the buffer, that is, the car is the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
560 first marked file.
44234
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
561 Values returned are normally absolute file names.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
562 Optional arg LOCALP as in `dired-get-filename'.
99051
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
563 Optional second argument ARG, if non-nil, specifies files near
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
564 point instead of marked files. It usually comes from the prefix
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
565 argument.
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
566 If ARG is an integer, use the next ARG files.
23e2db0d1534 (dired-get-marked-files, dired-map-over-marks): Doc fixes.
Chong Yidong <cyd@stupidchicken.com>
parents: 98004
diff changeset
567 Any other non-nil value means to use the current file instead.
44234
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
568 Optional third argument FILTER, if non-nil, is a function to select
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
569 some of the files--those for which (funcall FILTER FILENAME) is non-nil.
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
570
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
571 If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
572 return (t FILENAME) instead of (FILENAME).
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
573 Don't use that together with FILTER."
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
574 (let* ((all-of-them
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
575 (save-excursion
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
576 (dired-map-over-marks
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
577 (dired-get-filename localp)
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
578 arg nil distinguish-one-marked)))
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
579 result)
44234
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
580 (if (not filter)
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
581 (if (and distinguish-one-marked (eq (car all-of-them) t))
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
582 all-of-them
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
583 (nreverse all-of-them))
44234
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
584 (dolist (file all-of-them)
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
585 (if (funcall filter file)
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
586 (push file result)))
acb1f97fda8f (dired-get-marked-files): New arg FILTER allows selection of some files.
Richard M. Stallman <rms@gnu.org>
parents: 44212
diff changeset
587 result)))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
588
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
589 ;; The dired command
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
590
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
591 (defun dired-read-dir-and-switches (str)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
592 ;; For use in interactive.
99460
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
593 (reverse (list
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
594 (if current-prefix-arg
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
595 (read-string "Dired listing switches: "
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
596 dired-listing-switches))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
597 ;; If a dialog is about to be used, call read-directory-name so
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
598 ;; the dialog code knows we want directories. Some dialogs can
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
599 ;; only select directories or files when popped up, not both.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
600 (if (next-read-file-uses-dialog-p)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
601 (read-directory-name (format "Dired %s(directory): " str)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
602 nil default-directory nil)
106239
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
603 (read-file-name (format "Dired %s(directory): " str)
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
604 nil default-directory nil)))))
99460
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
605
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
606 ;; We want to switch to a more sophisticated version of
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
607 ;; dired-read-dir-and-switches like the following, if there is a way
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
608 ;; to make it more intuitive. See bug#1285.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
609
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
610 ;; (defun dired-read-dir-and-switches (str)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
611 ;; ;; For use in interactive.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
612 ;; (reverse
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
613 ;; (list
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
614 ;; (if current-prefix-arg
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
615 ;; (read-string "Dired listing switches: "
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
616 ;; dired-listing-switches))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
617 ;; ;; If a dialog is about to be used, call read-directory-name so
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
618 ;; ;; the dialog code knows we want directories. Some dialogs can
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
619 ;; ;; only select directories or files when popped up, not both.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
620 ;; (if (next-read-file-uses-dialog-p)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
621 ;; (read-directory-name (format "Dired %s(directory): " str)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
622 ;; nil default-directory nil)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
623 ;; (let ((cie ()))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
624 ;; (dolist (ext completion-ignored-extensions)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
625 ;; (if (eq ?/ (aref ext (1- (length ext)))) (push ext cie)))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
626 ;; (setq cie (concat (regexp-opt cie "\\(?:") "\\'"))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
627 ;; (lexical-let* ((default (and buffer-file-name
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
628 ;; (abbreviate-file-name buffer-file-name)))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
629 ;; (cie cie)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
630 ;; (completion-table
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
631 ;; ;; We need a mix of read-file-name and
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
632 ;; ;; read-directory-name so that completion to directories
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
633 ;; ;; is preferred, but if the user wants to enter a global
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
634 ;; ;; pattern, he can still use completion on filenames to
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
635 ;; ;; help him write the pattern.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
636 ;; ;; Essentially, we want to use
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
637 ;; ;; (completion-table-with-predicate
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
638 ;; ;; 'read-file-name-internal 'file-directory-p nil)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
639 ;; ;; but that doesn't work because read-file-name-internal
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
640 ;; ;; does not obey its `predicate' argument.
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
641 ;; (completion-table-in-turn
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
642 ;; (lambda (str pred action)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
643 ;; (let ((read-file-name-predicate
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
644 ;; (lambda (f)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
645 ;; (and (not (member f '("./" "../")))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
646 ;; ;; Hack! Faster than file-directory-p!
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
647 ;; (eq (aref f (1- (length f))) ?/)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
648 ;; (not (string-match cie f))))))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
649 ;; (complete-with-action
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
650 ;; action 'read-file-name-internal str nil)))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
651 ;; 'read-file-name-internal)))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
652 ;; (minibuffer-with-setup-hook
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
653 ;; (lambda ()
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
654 ;; (setq minibuffer-default default)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
655 ;; (setq minibuffer-completion-table completion-table))
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
656 ;; (read-file-name (format "Dired %s(directory): " str)
68e0d804e313 (dired-read-dir-and-switches): Revert to 2007-11-22 version
Chong Yidong <cyd@stupidchicken.com>
parents: 99051
diff changeset
657 ;; nil default-directory nil))))))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
658
106239
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
659 (defun dired-file-name-at-point ()
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
660 "Try to get a file name at point in the current dired buffer.
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
661 This hook is inteneded to be put in `file-name-at-point-functions'."
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
662 (let ((filename (dired-get-filename nil t)))
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
663 (when filename
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
664 (if (file-directory-p filename)
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
665 (file-name-as-directory (abbreviate-file-name filename))
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
666 (abbreviate-file-name filename)))))
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
667
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
668 ;;;###autoload (define-key ctl-x-map "d" 'dired)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
669 ;;;###autoload
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
670 (defun dired (dirname &optional switches)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
671 "\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
672 Optional second argument SWITCHES specifies the `ls' options used.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
673 \(Interactively, use a prefix argument to be able to specify SWITCHES.)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
674 Dired displays a list of files in DIRNAME (which may also have
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
675 shell wildcards appended to select certain files). If DIRNAME is a cons,
13888
8838c82fd058 (dired): Fix typo.
Richard M. Stallman <rms@gnu.org>
parents: 13750
diff changeset
676 its first element is taken as the directory name and the rest as an explicit
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
677 list of files to make directory entries for.
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
678 \\<dired-mode-map>\
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
679 You can move around in it with the usual commands.
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
680 You can flag files for deletion with \\[dired-flag-file-deletion] and then
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
681 delete them by typing \\[dired-do-flagged-delete].
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
682 Type \\[describe-mode] after entering Dired for more info.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
683
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
684 If DIRNAME is already in a dired buffer, that buffer is used without refresh."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
685 ;; Cannot use (interactive "D") because of wildcards.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
686 (interactive (dired-read-dir-and-switches ""))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
687 (switch-to-buffer (dired-noselect dirname switches)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
688
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
689 ;;;###autoload (define-key ctl-x-4-map "d" 'dired-other-window)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
690 ;;;###autoload
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
691 (defun dired-other-window (dirname &optional switches)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
692 "\"Edit\" directory DIRNAME. Like `dired' but selects in another window."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
693 (interactive (dired-read-dir-and-switches "in other window "))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
694 (switch-to-buffer-other-window (dired-noselect dirname switches)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
695
3148
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
696 ;;;###autoload (define-key ctl-x-5-map "d" 'dired-other-frame)
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
697 ;;;###autoload
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
698 (defun dired-other-frame (dirname &optional switches)
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
699 "\"Edit\" directory DIRNAME. Like `dired' but makes a new frame."
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
700 (interactive (dired-read-dir-and-switches "in other frame "))
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
701 (switch-to-buffer-other-frame (dired-noselect dirname switches)))
a4c37b95f19f (dired-other-frame): New function, with binding.
Richard M. Stallman <rms@gnu.org>
parents: 3102
diff changeset
702
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
703 ;;;###autoload
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
704 (defun dired-noselect (dir-or-list &optional switches)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
705 "Like `dired' but returns the dired buffer as value, does not select it."
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
706 (or dir-or-list (setq dir-or-list default-directory))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
707 ;; This loses the distinction between "/foo/*/" and "/foo/*" that
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
708 ;; some shells make:
17431
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
709 (let (dirname initially-was-dirname)
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
710 (if (consp dir-or-list)
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
711 (setq dirname (car dir-or-list))
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
712 (setq dirname dir-or-list))
17431
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
713 (setq initially-was-dirname
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
714 (string= (file-name-as-directory dirname) dirname))
8403
941432da0ff3 (dired-noselect): Call abbreviate-file-name here.
Richard M. Stallman <rms@gnu.org>
parents: 8321
diff changeset
715 (setq dirname (abbreviate-file-name
941432da0ff3 (dired-noselect): Call abbreviate-file-name here.
Richard M. Stallman <rms@gnu.org>
parents: 8321
diff changeset
716 (expand-file-name (directory-file-name dirname))))
14947
dde6603e020f (dired-noselect): Resolve symbolic links in argument.
Richard M. Stallman <rms@gnu.org>
parents: 14891
diff changeset
717 (if find-file-visit-truename
dde6603e020f (dired-noselect): Resolve symbolic links in argument.
Richard M. Stallman <rms@gnu.org>
parents: 14891
diff changeset
718 (setq dirname (file-truename dirname)))
17431
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
719 ;; If the argument was syntactically a directory name not a file name,
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
720 ;; or if it happens to name a file that is a directory,
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
721 ;; convert it syntactically to a directory name.
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
722 ;; The reason for checking initially-was-dirname
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
723 ;; and not just file-directory-p
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
724 ;; is that file-directory-p is slow over ftp.
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
725 (if (or initially-was-dirname (file-directory-p dirname))
cc5b0995866f (dired-noselect): Avoid calling file-directory-p
Richard M. Stallman <rms@gnu.org>
parents: 17206
diff changeset
726 (setq dirname (file-name-as-directory dirname)))
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
727 (if (consp dir-or-list)
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
728 (setq dir-or-list (cons dirname (cdr dir-or-list)))
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
729 (setq dir-or-list dirname))
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
730 (dired-internal-noselect dir-or-list switches)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
731
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
732 ;; The following is an internal dired function. It returns non-nil if
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
733 ;; the directory visited by the current dired buffer has changed on
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
734 ;; disk. DIRNAME should be the directory name of that directory.
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
735 (defun dired-directory-changed-p (dirname)
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
736 (not (let ((attributes (file-attributes dirname))
54542
0b174cfd1511 (dired-directory-changed-p): Reindent.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54533
diff changeset
737 (modtime (visited-file-modtime)))
0b174cfd1511 (dired-directory-changed-p): Reindent.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54533
diff changeset
738 (or (eq modtime 0)
0b174cfd1511 (dired-directory-changed-p): Reindent.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54533
diff changeset
739 (not (eq (car attributes) t))
56423
fb8b1f758f89 (dired-directory-changed-p): `visited-file-modtime' now returns a
Luc Teirlinck <teirllm@auburn.edu>
parents: 56035
diff changeset
740 (equal (nth 5 attributes) modtime)))))
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
741
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
742 (defun dired-buffer-stale-p (&optional noconfirm)
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
743 "Return non-nil if current dired buffer needs updating.
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
744 If NOCONFIRM is non-nil, then this function always returns nil
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
745 for a remote directory. This feature is used by Auto Revert Mode."
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
746 (let ((dirname
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
747 (if (consp dired-directory) (car dired-directory) dired-directory)))
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
748 (and (stringp dirname)
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
749 (not (when noconfirm (file-remote-p dirname)))
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
750 (file-readable-p dirname)
97636
6fab4ff7571d (dired-buffer-stale-p): Do not revert buffer that can be written.
Martin Rudalics <rudalics@gmx.at>
parents: 97422
diff changeset
751 ;; Do not auto-revert when the dired buffer can be currently
6fab4ff7571d (dired-buffer-stale-p): Do not revert buffer that can be written.
Martin Rudalics <rudalics@gmx.at>
parents: 97422
diff changeset
752 ;; written by the user as in `wdired-mode'.
6fab4ff7571d (dired-buffer-stale-p): Do not revert buffer that can be written.
Martin Rudalics <rudalics@gmx.at>
parents: 97422
diff changeset
753 buffer-read-only
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
754 (dired-directory-changed-p dirname))))
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
755
106410
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
756 ;;;###autoload
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
757 (defcustom dired-auto-revert-buffer nil
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
758 "Automatically revert dired buffer on revisiting.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
759 If t, revisiting an existing dired buffer automatically reverts it.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
760 If its value is a function, call this function with the directory
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
761 name as single argument and revert the buffer if it returns non-nil.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
762 Otherwise, a message offering to revert the changed dired buffer
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
763 is displayed.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
764 Note that this is not the same as `auto-revert-mode' that
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
765 periodically reverts at specified time intervals."
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
766 :type '(choice
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
767 (const :tag "Don't revert" nil)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
768 (const :tag "Always revert visited dired buffer" t)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
769 (const :tag "Revert changed dired buffer" dired-directory-changed-p)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
770 (function :tag "Predicate function"))
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
771 :group 'dired
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
772 :version "23.2")
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
773
12996
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
774 (defun dired-internal-noselect (dir-or-list &optional switches mode)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
775 ;; If there is an existing dired buffer for DIRNAME, just leave
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
776 ;; buffer as it is (don't even call dired-revert).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
777 ;; This saves time especially for deep trees or with ange-ftp.
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
778 ;; The user can type `g' easily, and it is more consistent with find-file.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
779 ;; But if SWITCHES are given they are probably different from the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
780 ;; buffer's old value, so call dired-sort-other, which does
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
781 ;; revert the buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
782 ;; A pity we can't possibly do "Directory has changed - refresh? "
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
783 ;; like find-file does.
12996
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
784 ;; Optional argument MODE is passed to dired-find-buffer-nocreate,
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
785 ;; see there.
104681
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
786 (let* ((old-buf (current-buffer))
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
787 (dirname (if (consp dir-or-list) (car dir-or-list) dir-or-list))
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
788 ;; Look for an existing buffer.
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
789 (buffer (dired-find-buffer-nocreate dirname mode))
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
790 ;; Note that buffer already is in dired-mode, if found.
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
791 (new-buffer-p (null buffer)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
792 (or buffer
104681
91afee51b252 * textmodes/ispell.el (ispell-check-version, ispell-send-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103234
diff changeset
793 (setq buffer (create-file-buffer (directory-file-name dirname))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
794 (set-buffer buffer)
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
795 (if (not new-buffer-p) ; existing buffer ...
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
796 (cond (switches ; ... but new switches
13010
06f8e805121d (dired-internal-noselect): Set dired-directory when refreshing a buffer
André Spiegel <spiegel@gnu.org>
parents: 12996
diff changeset
797 ;; file list may have changed
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
798 (setq dired-directory dir-or-list)
13010
06f8e805121d (dired-internal-noselect): Set dired-directory when refreshing a buffer
André Spiegel <spiegel@gnu.org>
parents: 12996
diff changeset
799 ;; this calls dired-revert
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
800 (dired-sort-other switches))
106410
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
801 ;; Always revert regardless of whether it has changed or not.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
802 ((eq dired-auto-revert-buffer t)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
803 (revert-buffer))
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
804 ;; Revert when predicate function returns non-nil.
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
805 ((functionp dired-auto-revert-buffer)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
806 (when (funcall dired-auto-revert-buffer dirname)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
807 (revert-buffer)
c1162f7a37aa (dired-auto-revert-buffer): New defcustom.
Juri Linkov <juri@jurta.org>
parents: 106403
diff changeset
808 (message "Changed directory automatically updated")))
13010
06f8e805121d (dired-internal-noselect): Set dired-directory when refreshing a buffer
André Spiegel <spiegel@gnu.org>
parents: 12996
diff changeset
809 ;; If directory has changed on disk, offer to revert.
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
810 ((when (dired-directory-changed-p dirname)
14309
d546dc4e0c0b (dired-internal-noselect): Pass proper format string to message.
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
811 (message "%s"
14361
fbce2d55fec6 Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 14309
diff changeset
812 (substitute-command-keys
fbce2d55fec6 Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 14309
diff changeset
813 "Directory has changed on disk; type \\[revert-buffer] to update Dired")))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
814 ;; Else a new buffer
5113
193cd8b36b41 (dired-readin-insert): Expand default-directory and dirname
Richard M. Stallman <rms@gnu.org>
parents: 5112
diff changeset
815 (setq default-directory
17439
5d1881f8c7f1 (dired-internal-noselect): When setting default-directory,
Richard M. Stallman <rms@gnu.org>
parents: 17431
diff changeset
816 ;; We can do this unconditionally
5d1881f8c7f1 (dired-internal-noselect): When setting default-directory,
Richard M. Stallman <rms@gnu.org>
parents: 17431
diff changeset
817 ;; because dired-noselect ensures that the name
5d1881f8c7f1 (dired-internal-noselect): When setting default-directory,
Richard M. Stallman <rms@gnu.org>
parents: 17431
diff changeset
818 ;; is passed in directory name syntax
5d1881f8c7f1 (dired-internal-noselect): When setting default-directory,
Richard M. Stallman <rms@gnu.org>
parents: 17431
diff changeset
819 ;; if it was the name of a directory at all.
5d1881f8c7f1 (dired-internal-noselect): When setting default-directory,
Richard M. Stallman <rms@gnu.org>
parents: 17431
diff changeset
820 (file-name-directory dirname))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
821 (or switches (setq switches dired-listing-switches))
22355
80bf6e97360b (dired-internal-noselect): Call either dired-mode or MODE, but not both.
André Spiegel <spiegel@gnu.org>
parents: 22206
diff changeset
822 (if mode (funcall mode)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
823 (dired-mode dir-or-list switches))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
824 ;; default-directory and dired-actual-switches are set now
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
825 ;; (buffer-local), so we can call dired-readin:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
826 (let ((failed t))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
827 (unwind-protect
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
828 (progn (dired-readin)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
829 (setq failed nil))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
830 ;; dired-readin can fail if parent directories are inaccessible.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
831 ;; Don't leave an empty buffer around in that case.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
832 (if failed (kill-buffer buffer))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
833 (goto-char (point-min))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
834 (dired-initial-position dirname))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
835 (set-buffer old-buf)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
836 buffer))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
837
30108
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
838 (defvar dired-buffers nil
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
839 ;; Enlarged by dired-advertise
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
840 ;; Queried by function dired-buffers-for-dir. When this detects a
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
841 ;; killed buffer, it is removed from this list.
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
842 "Alist of expanded directories and their associated dired buffers.")
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
843
12996
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
844 (defun dired-find-buffer-nocreate (dirname &optional mode)
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
845 ;; This differs from dired-buffers-for-dir in that it does not consider
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
846 ;; subdirs of default-directory and searches for the first match only.
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
847 ;; Also, the major mode must be MODE.
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
848 (setq dirname (expand-file-name dirname))
11970
a99407606405 (dired-find-buffer-nocreate): Check only buffers in
Karl Heuer <kwzh@gnu.org>
parents: 11587
diff changeset
849 (let (found (blist dired-buffers)) ; was (buffer-list)
12996
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
850 (or mode (setq mode 'dired-mode))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
851 (while blist
12045
ad681fd69905 (dired-find-buffer-nocreate): Ignore dead buffers.
Karl Heuer <kwzh@gnu.org>
parents: 12001
diff changeset
852 (if (null (buffer-name (cdr (car blist))))
ad681fd69905 (dired-find-buffer-nocreate): Ignore dead buffers.
Karl Heuer <kwzh@gnu.org>
parents: 12001
diff changeset
853 (setq blist (cdr blist))
105994
009383a57ce8 * x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105968
diff changeset
854 (with-current-buffer (cdr (car blist))
12996
59cb17f969d2 (dired-internal-noselect): New arg MODE.
Richard M. Stallman <rms@gnu.org>
parents: 12906
diff changeset
855 (if (and (eq major-mode mode)
49583
ffebff40964c (dired-find-buffer-nocreate): Avoid error if dired-directory is nil.
Richard M. Stallman <rms@gnu.org>
parents: 49549
diff changeset
856 dired-directory ;; nil during find-alternate-file
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
857 (equal dirname
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
858 (expand-file-name
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
859 (if (consp dired-directory)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
860 (car dired-directory)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
861 dired-directory))))
12045
ad681fd69905 (dired-find-buffer-nocreate): Ignore dead buffers.
Karl Heuer <kwzh@gnu.org>
parents: 12001
diff changeset
862 (setq found (cdr (car blist))
ad681fd69905 (dired-find-buffer-nocreate): Ignore dead buffers.
Karl Heuer <kwzh@gnu.org>
parents: 12001
diff changeset
863 blist nil)
ad681fd69905 (dired-find-buffer-nocreate): Ignore dead buffers.
Karl Heuer <kwzh@gnu.org>
parents: 12001
diff changeset
864 (setq blist (cdr blist))))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
865 found))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
866
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
867
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
868 ;; Read in a new dired buffer
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
869
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
870 (defun dired-readin ()
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
871 "Read in a new dired buffer.
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
872 Differs from `dired-insert-subdir' in that it accepts
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
873 wildcards, erases the buffer, and builds the subdir-alist anew
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
874 \(including making it buffer-local and clearing it first)."
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
875
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
876 ;; default-directory and dired-actual-switches must be buffer-local
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
877 ;; and initialized by now.
100637
6f8834a6d1b3 (dired-readin): Inhibit modification hooks.
Richard M. Stallman <rms@gnu.org>
parents: 100362
diff changeset
878 (let (dirname
6f8834a6d1b3 (dired-readin): Inhibit modification hooks.
Richard M. Stallman <rms@gnu.org>
parents: 100362
diff changeset
879 ;; This makes readin much much faster.
6f8834a6d1b3 (dired-readin): Inhibit modification hooks.
Richard M. Stallman <rms@gnu.org>
parents: 100362
diff changeset
880 ;; In particular, it prevents the font lock hook from running
6f8834a6d1b3 (dired-readin): Inhibit modification hooks.
Richard M. Stallman <rms@gnu.org>
parents: 100362
diff changeset
881 ;; until the directory is all read in.
6f8834a6d1b3 (dired-readin): Inhibit modification hooks.
Richard M. Stallman <rms@gnu.org>
parents: 100362
diff changeset
882 (inhibit-modification-hooks t))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
883 (if (consp dired-directory)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
884 (setq dirname (car dired-directory))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
885 (setq dirname dired-directory))
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
886 (setq dirname (expand-file-name dirname))
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
887 (save-excursion
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
888 ;; This hook which may want to modify dired-actual-switches
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
889 ;; based on dired-directory, e.g. with ange-ftp to a SysV host
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
890 ;; where ls won't understand -Al switches.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
891 (run-hooks 'dired-before-readin-hook)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
892 (if (consp buffer-undo-list)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
893 (setq buffer-undo-list nil))
73775
5fbb36eba879 (dired-readin): Locally bind file-name-coding-system.
Richard M. Stallman <rms@gnu.org>
parents: 73211
diff changeset
894 (make-local-variable 'file-name-coding-system)
5fbb36eba879 (dired-readin): Locally bind file-name-coding-system.
Richard M. Stallman <rms@gnu.org>
parents: 73211
diff changeset
895 (setq file-name-coding-system
5fbb36eba879 (dired-readin): Locally bind file-name-coding-system.
Richard M. Stallman <rms@gnu.org>
parents: 73211
diff changeset
896 (or coding-system-for-read file-name-coding-system))
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
897 (let ((inhibit-read-only t)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
898 ;; Don't make undo entries for readin.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
899 (buffer-undo-list t))
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
900 (widen)
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
901 (erase-buffer)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
902 (dired-readin-insert))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
903 (goto-char (point-min))
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
904 ;; Must first make alist buffer local and set it to nil because
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
905 ;; dired-build-subdir-alist will call dired-clear-alist first
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
906 (set (make-local-variable 'dired-subdir-alist) nil)
7598
cdde619af40c (dired-readin): Clear modified flag at the very end.
Richard M. Stallman <rms@gnu.org>
parents: 7494
diff changeset
907 (dired-build-subdir-alist)
8073
6511fd7aaea4 (dired-readin): Record the directory's modtime.
Richard M. Stallman <rms@gnu.org>
parents: 7945
diff changeset
908 (let ((attributes (file-attributes dirname)))
6511fd7aaea4 (dired-readin): Record the directory's modtime.
Richard M. Stallman <rms@gnu.org>
parents: 7945
diff changeset
909 (if (eq (car attributes) t)
6511fd7aaea4 (dired-readin): Record the directory's modtime.
Richard M. Stallman <rms@gnu.org>
parents: 7945
diff changeset
910 (set-visited-file-modtime (nth 5 attributes))))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
911 (set-buffer-modified-p nil)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
912 ;; No need to narrow since the whole buffer contains just
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
913 ;; dired-readin's output, nothing else. The hook can
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
914 ;; successfully use dired functions (e.g. dired-get-filename)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
915 ;; as the subdir-alist has been built in dired-readin.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
916 (run-hooks 'dired-after-readin-hook))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
917
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
918 ;; Subroutines of dired-readin
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
919
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
920 (defun dired-readin-insert ()
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
921 ;; Insert listing for the specified dir (and maybe file list)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
922 ;; already in dired-directory, assuming a clean buffer.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
923 (let (dir file-list)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
924 (if (consp dired-directory)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
925 (setq dir (car dired-directory)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
926 file-list (cdr dired-directory))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
927 (setq dir dired-directory
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
928 file-list nil))
47901
29357f0b7ba5 (dired-readin-insert): Expand dired-directory.
Andreas Schwab <schwab@suse.de>
parents: 47852
diff changeset
929 (setq dir (expand-file-name dir))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
930 (if (and (equal "" (file-name-nondirectory dir))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
931 (not file-list))
4284
831da9ea9a95 (dired-readin-insert): If we got a list of files,
Richard M. Stallman <rms@gnu.org>
parents: 4191
diff changeset
932 ;; If we are reading a whole single directory...
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
933 (dired-insert-directory dir dired-actual-switches nil nil t)
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
934 (if (not (file-readable-p
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
935 (directory-file-name (file-name-directory dir))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
936 (error "Directory %s inaccessible or nonexistent" dir)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
937 ;; Else treat it as a wildcard spec
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
938 ;; unless we have an explicit list of files.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
939 (dired-insert-directory dir dired-actual-switches
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
940 file-list (not file-list) t)))))
2492
de8b66eb78cf dired-noselect, dired-internal-noselect, dired-insert-directory:
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2466
diff changeset
941
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
942 (defun dired-align-file (beg end)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
943 "Align the fields of a file to the ones of surrounding lines.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
944 BEG..END is the line where the file info is located."
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
945 ;; Some versions of ls try to adjust the size of each field so as to just
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
946 ;; hold the largest element ("largest" in the current invocation, of
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
947 ;; course). So when a single line is output, the size of each field is
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
948 ;; just big enough for that one output. Thus when dired refreshes one
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
949 ;; line, the alignment if this line w.r.t the rest is messed up because
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
950 ;; the fields of that one line will generally be smaller.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
951 ;;
66325
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
952 ;; To work around this problem, we here add spaces to try and
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
953 ;; re-align the fields as needed. Since this is purely aesthetic,
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
954 ;; it is of utmost importance that it doesn't mess up anything like
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
955 ;; `dired-move-to-filename'. To this end, we limit ourselves to
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
956 ;; adding spaces only, and to only add them at places where there
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
957 ;; was already at least one space. This way, as long as
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
958 ;; `directory-listing-before-filename-regexp' always matches spaces
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
959 ;; with "*" or "+", we know we haven't made anything worse. There
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
960 ;; is one spot where the exact number of spaces is important, which
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
961 ;; is just before the actual filename, so we refrain from adding
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
962 ;; spaces there (and within the filename as well, of course).
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
963 (save-excursion
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
964 (let (file file-col other other-col)
105424
098f8a47a308 Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents: 105372
diff changeset
965 ;; Check that there is indeed a file, and that there is anoter adjacent
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
966 ;; file with which to align, and that additional spaces are needed to
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
967 ;; align the filenames.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
968 (when (and (setq file (progn (goto-char beg)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
969 (dired-move-to-filename nil end)))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
970 (setq file-col (current-column))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
971 (setq other
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
972 (or (and (goto-char beg)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
973 (zerop (forward-line -1))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
974 (dired-move-to-filename))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
975 (and (goto-char beg)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
976 (zerop (forward-line 1))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
977 (dired-move-to-filename))))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
978 (setq other-col (current-column))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
979 (/= file other)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
980 ;; Make sure there is some work left to do.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
981 (> other-col file-col))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
982 ;; If we've only looked at the line above, check to see if the line
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
983 ;; below exists as well and if so, align with the shorter one.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
984 (when (and (< other file)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
985 (goto-char beg)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
986 (zerop (forward-line 1))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
987 (dired-move-to-filename))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
988 (let ((alt-col (current-column)))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
989 (when (< alt-col other-col)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
990 (setq other-col alt-col)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
991 (setq other (point)))))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
992 ;; Keep positions uptodate when we insert stuff.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
993 (if (> other file) (setq other (copy-marker other)))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
994 (setq file (copy-marker file))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
995 ;; Main loop.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
996 (goto-char beg)
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
997 (skip-chars-forward " ") ;Skip to the first field.
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
998 (while (and (> other-col file-col)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
999 ;; Don't touch anything just before (and after) the
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1000 ;; beginning of the filename.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1001 (> file (point)))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1002 ;; We're now just in front of a field, with a space behind us.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1003 (let* ((curcol (current-column))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1004 ;; Nums are right-aligned.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1005 (num-align (looking-at "[0-9]"))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1006 ;; Let's look at the other line, in the same column: we
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1007 ;; should be either near the end of the previous field, or
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1008 ;; in the space between that field and the next.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1009 ;; [ Of course, it's also possible that we're already within
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1010 ;; the next field or even past it, but that's unlikely since
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1011 ;; other-col > file-col. ]
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1012 ;; Let's find the distance to the alignment-point (either
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1013 ;; the beginning or the end of the next field, depending on
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1014 ;; whether this field is left or right aligned).
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1015 (align-pt-offset
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1016 (save-excursion
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1017 (goto-char other)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1018 (move-to-column curcol)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1019 (when (looking-at
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1020 (concat
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1021 (if (eq (char-before) ?\s) " *" "[^ ]* *")
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1022 (if num-align "[0-9][^ ]*")))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1023 (- (match-end 0) (match-beginning 0)))))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1024 ;; Now, the number of spaces to insert is align-pt-offset
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1025 ;; minus the distance to the equivalent point on the
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1026 ;; current line.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1027 (spaces
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1028 (if (not num-align)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1029 align-pt-offset
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1030 (and align-pt-offset
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1031 (save-excursion
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1032 (skip-chars-forward "^ ")
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1033 (- align-pt-offset (- (current-column) curcol)))))))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1034 (when (and spaces (> spaces 0))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1035 (setq file-col (+ spaces file-col))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1036 (if (> file-col other-col)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1037 (setq spaces (- spaces (- file-col other-col))))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1038 (insert-char ?\s spaces)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1039 ;; Let's just make really sure we did not mess up.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1040 (unless (save-excursion
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1041 (eq (dired-move-to-filename) (marker-position file)))
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1042 ;; Damn! We messed up: let's revert the change.
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1043 (delete-char (- spaces)))))
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1044 ;; Now skip to next field.
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1045 (skip-chars-forward "^ ") (skip-chars-forward " "))
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1046 (set-marker file nil)))))
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1047
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1048
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1049 (defun dired-insert-directory (dir switches &optional file-list wildcard hdr)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1050 "Insert a directory listing of DIR, Dired style.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1051 Use SWITCHES to make the listings.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1052 If FILE-LIST is non-nil, list only those files.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1053 Otherwise, if WILDCARD is non-nil, expand wildcards;
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1054 in that case, DIR should be a file name that uses wildcards.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1055 In other cases, DIR should be a directory name or a directory filename.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1056 If HDR is non-nil, insert a header line with the directory name."
10126
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
1057 (let ((opoint (point))
13929
490fe0437271 (dired-insert-directory): Force use of C locale.
Richard M. Stallman <rms@gnu.org>
parents: 13888
diff changeset
1058 (process-environment (copy-sequence process-environment))
10126
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
1059 end)
47575
4d9f899a5963 * dired.el (dired-insert-directory): Always add "--dired" to to
Kai Großjohann <kgrossjo@eu.uu.net>
parents: 47544
diff changeset
1060 (if (or dired-use-ls-dired (file-remote-p dir))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1061 (setq switches (concat "--dired " switches)))
16773
7064fa2cb0d7 (dired-insert-directory): Don't override the user's locale.
Richard M. Stallman <rms@gnu.org>
parents: 16710
diff changeset
1062 ;; We used to specify the C locale here, to force English month names;
7064fa2cb0d7 (dired-insert-directory): Don't override the user's locale.
Richard M. Stallman <rms@gnu.org>
parents: 16710
diff changeset
1063 ;; but this should not be necessary any more,
66325
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
1064 ;; with the new value of `directory-listing-before-filename-regexp'.
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1065 (if file-list
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1066 (dolist (f file-list)
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1067 (let ((beg (point)))
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1068 (insert-directory f switches nil nil)
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1069 ;; Re-align fields, if necessary.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
1070 (dired-align-file beg (point))))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1071 (insert-directory dir switches wildcard (not wildcard)))
10126
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
1072 ;; Quote certain characters, unless ls quoted them for us.
11151
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1073 (if (not (string-match "b" dired-actual-switches))
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1074 (save-excursion
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1075 (setq end (point-marker))
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1076 (goto-char opoint)
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1077 (while (search-forward "\\" end t)
48903
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1078 (replace-match (apply #'propertize
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1079 "\\\\"
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1080 (text-properties-at (match-beginning 0)))
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1081 nil t))
11151
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1082 (goto-char opoint)
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1083 (while (search-forward "\^m" end t)
48903
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1084 (replace-match (apply #'propertize
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1085 "\\015"
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1086 (text-properties-at (match-beginning 0)))
bcc54fecfcee (dired-insert-directory): Preserve text properties when quoting.
Andreas Schwab <schwab@suse.de>
parents: 48491
diff changeset
1087 nil t))
11151
ab55a16a92ce Wrap filename character quoting code with save-excursion so following forms
Simon Marshall <simon@gnu.org>
parents: 10845
diff changeset
1088 (set-marker end nil)))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1089 (dired-insert-set-properties opoint (point))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1090 ;; If we used --dired and it worked, the lines are already indented.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1091 ;; Otherwise, indent them.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1092 (unless (save-excursion
47852
d8b6eab7d77a (dired-insert-directory): When looking for existing
Andreas Schwab <schwab@suse.de>
parents: 47831
diff changeset
1093 (goto-char opoint)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1094 (looking-at " "))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1095 (let ((indent-tabs-mode nil))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1096 (indent-rigidly opoint (point) 2)))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1097 ;; Insert text at the beginning to standardize things.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1098 (save-excursion
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1099 (goto-char opoint)
95783
4a429fae9256 (dired-insert-directory): Don't assume Unix-style dir names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94894
diff changeset
1100 (if (and (or hdr wildcard)
4a429fae9256 (dired-insert-directory): Don't assume Unix-style dir names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94894
diff changeset
1101 (not (and (looking-at "^ \\(.*\\):$")
4a429fae9256 (dired-insert-directory): Don't assume Unix-style dir names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94894
diff changeset
1102 (file-name-absolute-p (match-string 1)))))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1103 ;; Note that dired-build-subdir-alist will replace the name
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1104 ;; by its expansion, so it does not matter whether what we insert
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1105 ;; here is fully expanded, but it should be absolute.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1106 (insert " " (directory-file-name (file-name-directory dir)) ":\n"))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1107 (when wildcard
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1108 ;; Insert "wildcard" line where "total" line would be for a full dir.
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
1109 (insert " wildcard " (file-name-nondirectory dir) "\n")))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1110
6634
dc75f33163fb (dired-insert-directory): Add mouse-face properties.
Richard M. Stallman <rms@gnu.org>
parents: 6594
diff changeset
1111 (defun dired-insert-set-properties (beg end)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1112 "Make the file names highlight when the mouse is on them."
6634
dc75f33163fb (dired-insert-directory): Add mouse-face properties.
Richard M. Stallman <rms@gnu.org>
parents: 6594
diff changeset
1113 (save-excursion
dc75f33163fb (dired-insert-directory): Add mouse-face properties.
Richard M. Stallman <rms@gnu.org>
parents: 6594
diff changeset
1114 (goto-char beg)
dc75f33163fb (dired-insert-directory): Add mouse-face properties.
Richard M. Stallman <rms@gnu.org>
parents: 6594
diff changeset
1115 (while (< (point) end)
12736
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
1116 (condition-case nil
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
1117 (if (dired-move-to-filename)
38074
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1118 (add-text-properties
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1119 (point)
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1120 (save-excursion
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1121 (dired-move-to-end-of-filename)
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1122 (point))
38426
7c443908a552 (dired-insert-set-properties): Fix invalid mouse-face
Gerd Moellmann <gerd@gnu.org>
parents: 38214
diff changeset
1123 '(mouse-face highlight
97079
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1124 dired-filename t
38074
7ca7def9af01 (dired-insert-set-properties): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 37547
diff changeset
1125 help-echo "mouse-2: visit this file in other window")))
12736
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
1126 (error nil))
6634
dc75f33163fb (dired-insert-directory): Add mouse-face properties.
Richard M. Stallman <rms@gnu.org>
parents: 6594
diff changeset
1127 (forward-line 1))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
1128
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1129 ;; Reverting a dired buffer
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1130
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1131 (defun dired-revert (&optional arg noconfirm)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1132 "Reread the dired buffer.
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1133 Must also be called after `dired-actual-switches' have changed.
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1134 Should not fail even on completely garbaged buffers.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1135 Preserves old cursor, marks/flags, hidden-p."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1136 (widen) ; just in case user narrowed
56035
e3ace501b5f4 (dired-revert): If buffer is marked unmodified before
Luc Teirlinck <teirllm@auburn.edu>
parents: 56015
diff changeset
1137 (let ((modflag (buffer-modified-p))
105968
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1138 (positions (dired-save-positions))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1139 (mark-alist nil) ; save marked files
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1140 (hidden-subdirs (dired-remember-hidden))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1141 (old-subdir-alist (cdr (reverse dired-subdir-alist))) ; except pwd
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1142 (case-fold-search nil) ; we check for upper case ls flags
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1143 (inhibit-read-only t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1144 (goto-char (point-min))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1145 (setq mark-alist;; only after dired-remember-hidden since this unhides:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1146 (dired-remember-marks (point-min) (point-max)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1147 ;; treat top level dir extra (it may contain wildcards)
107085
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1148 (if (not (consp dired-directory))
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1149 (dired-uncache dired-directory)
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1150 (dired-uncache (car dired-directory))
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1151 (dolist (dir (cdr dired-directory))
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1152 (if (file-name-absolute-p dir)
d7831d04952b * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
Michael Albinus <michael.albinus@gmx.de>
parents: 106922
diff changeset
1153 (dired-uncache dir))))
74385
fcc9e01e9e6d (dired-revert): Turn off dired-after-readin-hook around call to dired-readin.
Richard M. Stallman <rms@gnu.org>
parents: 73775
diff changeset
1154 ;; Run dired-after-readin-hook just once, below.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1155 (let ((dired-after-readin-hook nil))
74385
fcc9e01e9e6d (dired-revert): Turn off dired-after-readin-hook around call to dired-readin.
Richard M. Stallman <rms@gnu.org>
parents: 73775
diff changeset
1156 (dired-readin)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1157 (dired-insert-old-subdirs old-subdir-alist))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1158 (dired-mark-remembered mark-alist) ; mark files that were marked
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1159 ;; ... run the hook for the whole buffer, and only after markers
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1160 ;; have been reinserted (else omitting in dired-x would omit marked files)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1161 (run-hooks 'dired-after-readin-hook) ; no need to narrow
105968
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1162 (dired-restore-positions positions)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1163 (save-excursion ; hide subdirs that were hidden
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1164 (dolist (dir hidden-subdirs)
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1165 (if (dired-goto-subdir dir)
56035
e3ace501b5f4 (dired-revert): If buffer is marked unmodified before
Luc Teirlinck <teirllm@auburn.edu>
parents: 56015
diff changeset
1166 (dired-hide-subdir 1))))
e3ace501b5f4 (dired-revert): If buffer is marked unmodified before
Luc Teirlinck <teirllm@auburn.edu>
parents: 56015
diff changeset
1167 (unless modflag (restore-buffer-modified-p nil)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1168 ;; outside of the let scope
56035
e3ace501b5f4 (dired-revert): If buffer is marked unmodified before
Luc Teirlinck <teirllm@auburn.edu>
parents: 56015
diff changeset
1169 ;;; Might as well not override the user if the user changed this.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1170 ;;; (setq buffer-read-only t)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1171 )
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1172
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1173 ;; Subroutines of dired-revert
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1174 ;; Some of these are also used when inserting subdirs.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1175
105968
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1176 (defun dired-save-positions ()
106446
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1177 "Return current positions in the buffer and all windows with this directory.
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1178 The positions have the form (BUFFER-POSITION WINDOW-POSITIONS).
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1179
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1180 BUFFER-POSITION is the point position in the current dired buffer.
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1181 The buffer position have the form (BUFFER DIRED-FILENAME BUFFER-POINT).
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1182
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1183 WINDOW-POSITIONS are current positions in all windows displaying
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1184 this dired buffer. The window positions have the form (WINDOW
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1185 DIRED-FILENAME WINDOW-POINT)."
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1186 (list
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1187 (list (current-buffer) (dired-get-filename nil t) (point))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1188 (mapcar (lambda (w)
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1189 (list w
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1190 (with-selected-window w
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1191 (dired-get-filename nil t))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1192 (window-point w)))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1193 (get-buffer-window-list nil 0 t))))
105968
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1194
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1195 (defun dired-restore-positions (positions)
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1196 "Restore POSITIONS saved with `dired-save-positions'."
106446
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1197 (let* ((buf-file-pos (nth 0 positions))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1198 (buffer (nth 0 buf-file-pos)))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1199 (unless (and (nth 1 buf-file-pos)
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1200 (dired-goto-file (nth 1 buf-file-pos)))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1201 (goto-char (nth 2 buf-file-pos))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1202 (dired-move-to-filename))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1203 (dolist (win-file-pos (nth 1 positions))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1204 ;; Ensure that window still displays the original buffer.
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1205 (when (eq (window-buffer (nth 0 win-file-pos)) buffer)
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1206 (with-selected-window (nth 0 win-file-pos)
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1207 (unless (and (nth 1 win-file-pos)
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1208 (dired-goto-file (nth 1 win-file-pos)))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1209 (goto-char (nth 2 win-file-pos))
56b9af7a1762 Save and restore dired buffer's point positions too. (Bug#4880)
Juri Linkov <juri@jurta.org>
parents: 106410
diff changeset
1210 (dired-move-to-filename)))))))
105968
f4dc8b8f20d2 (dired-save-positions, dired-restore-positions): New funs.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105957
diff changeset
1211
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1212 (defun dired-remember-marks (beg end)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1213 "Return alist of files and their marks, from BEG to END."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1214 (if selective-display ; must unhide to make this work.
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1215 (let ((inhibit-read-only t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1216 (subst-char-in-region beg end ?\r ?\n)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1217 (let (fil chr alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1218 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1219 (goto-char beg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1220 (while (re-search-forward dired-re-mark end t)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1221 (if (setq fil (dired-get-filename nil t))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1222 (setq chr (preceding-char)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1223 alist (cons (cons fil chr) alist)))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1224 alist))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1225
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1226 (defun dired-mark-remembered (alist)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1227 "Mark all files remembered in ALIST.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1228 Each element of ALIST looks like (FILE . MARKERCHAR)."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1229 (let (elt fil chr)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1230 (while alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1231 (setq elt (car alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1232 alist (cdr alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1233 fil (car elt)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1234 chr (cdr elt))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1235 (if (dired-goto-file fil)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1236 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1237 (beginning-of-line)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1238 (delete-char 1)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1239 (insert chr))))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1240
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1241 (defun dired-remember-hidden ()
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1242 "Return a list of names of subdirs currently hidden."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1243 (let ((l dired-subdir-alist) dir pos result)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1244 (while l
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1245 (setq dir (car (car l))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1246 pos (cdr (car l))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1247 l (cdr l))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1248 (goto-char pos)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1249 (skip-chars-forward "^\r\n")
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
1250 (if (eq (following-char) ?\r)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1251 (setq result (cons dir result))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1252 result))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1253
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1254 (defun dired-insert-old-subdirs (old-subdir-alist)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1255 "Try to insert all subdirs that were displayed before.
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1256 Do so according to the former subdir alist OLD-SUBDIR-ALIST."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1257 (or (string-match "R" dired-actual-switches)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1258 (let (elt dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1259 (while old-subdir-alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1260 (setq elt (car old-subdir-alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1261 old-subdir-alist (cdr old-subdir-alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1262 dir (car elt))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1263 (condition-case ()
1130
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1264 (progn
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1265 (dired-uncache dir)
56015
e7e7513282b4 (dired-insert-old-subdirs): Adapt to fact that the R switch is no
Luc Teirlinck <teirllm@auburn.edu>
parents: 55994
diff changeset
1266 (dired-insert-subdir dir))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1267 (error nil))))))
1130
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1268
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1269 (defun dired-uncache (dir)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1270 "Remove directory DIR from any directory cache."
7030
9e51b51e8595 Pass operation to find-file-name-handler.
Karl Heuer <kwzh@gnu.org>
parents: 6864
diff changeset
1271 (let ((handler (find-file-name-handler dir 'dired-uncache)))
1130
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1272 (if handler
e18597ff3c95 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 1109
diff changeset
1273 (funcall handler 'dired-uncache dir))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
1274
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1275 ;; dired mode key bindings and initialization
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1276
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1277 (defvar dired-mode-map
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1278 ;; This looks ugly when substitute-command-keys uses C-d instead d:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1279 ;; (define-key dired-mode-map "\C-d" 'dired-flag-file-deletion)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1280 (let ((map (make-keymap)))
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1281 (suppress-keymap map)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1282 (define-key map [mouse-2] 'dired-mouse-find-file-other-window)
59024
f71e5777b783 (dired-mode-map): Map follow-link to mouse-face.
Kim F. Storm <storm@cua.dk>
parents: 58426
diff changeset
1283 (define-key map [follow-link] 'mouse-face)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1284 ;; Commands to mark or flag certain categories of files
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1285 (define-key map "#" 'dired-flag-auto-save-files)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1286 (define-key map "." 'dired-clean-directory)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1287 (define-key map "~" 'dired-flag-backup-files)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1288 ;; Upper case keys (except !) for operating on the marked files
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1289 (define-key map "A" 'dired-do-search)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1290 (define-key map "C" 'dired-do-copy)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1291 (define-key map "B" 'dired-do-byte-compile)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1292 (define-key map "D" 'dired-do-delete)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1293 (define-key map "G" 'dired-do-chgrp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1294 (define-key map "H" 'dired-do-hardlink)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1295 (define-key map "L" 'dired-do-load)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1296 (define-key map "M" 'dired-do-chmod)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1297 (define-key map "O" 'dired-do-chown)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1298 (define-key map "P" 'dired-do-print)
28937
2d65f0ae4167 (dired-mode-map): Use dired-do-query-replace-regexp.
Gerd Moellmann <gerd@gnu.org>
parents: 28737
diff changeset
1299 (define-key map "Q" 'dired-do-query-replace-regexp)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1300 (define-key map "R" 'dired-do-rename)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1301 (define-key map "S" 'dired-do-symlink)
54663
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
1302 (define-key map "T" 'dired-do-touch)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1303 (define-key map "X" 'dired-do-shell-command)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1304 (define-key map "Z" 'dired-do-compress)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1305 (define-key map "!" 'dired-do-shell-command)
97088
4656cbfe9954 (dired-mode-map): Rebind `dired-flag-garbage-files' from `&' to `%&'.
Juri Linkov <juri@jurta.org>
parents: 97079
diff changeset
1306 (define-key map "&" 'dired-do-async-shell-command)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1307 ;; Comparison commands
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1308 (define-key map "=" 'dired-diff)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1309 (define-key map "\M-=" 'dired-backup-diff)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1310 ;; Tree Dired commands
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1311 (define-key map "\M-\C-?" 'dired-unmark-all-files)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1312 (define-key map "\M-\C-d" 'dired-tree-down)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1313 (define-key map "\M-\C-u" 'dired-tree-up)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1314 (define-key map "\M-\C-n" 'dired-next-subdir)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1315 (define-key map "\M-\C-p" 'dired-prev-subdir)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1316 ;; move to marked files
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1317 (define-key map "\M-{" 'dired-prev-marked-file)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1318 (define-key map "\M-}" 'dired-next-marked-file)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1319 ;; Make all regexp commands share a `%' prefix:
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1320 ;; We used to get to the submap via a symbol dired-regexp-prefix,
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1321 ;; but that seems to serve little purpose, and copy-keymap
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1322 ;; does a better job without it.
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1323 (define-key map "%" nil)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1324 (define-key map "%u" 'dired-upcase)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1325 (define-key map "%l" 'dired-downcase)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1326 (define-key map "%d" 'dired-flag-files-regexp)
22206
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
1327 (define-key map "%g" 'dired-mark-files-containing-regexp)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1328 (define-key map "%m" 'dired-mark-files-regexp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1329 (define-key map "%r" 'dired-do-rename-regexp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1330 (define-key map "%C" 'dired-do-copy-regexp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1331 (define-key map "%H" 'dired-do-hardlink-regexp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1332 (define-key map "%R" 'dired-do-rename-regexp)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1333 (define-key map "%S" 'dired-do-symlink-regexp)
97088
4656cbfe9954 (dired-mode-map): Rebind `dired-flag-garbage-files' from `&' to `%&'.
Juri Linkov <juri@jurta.org>
parents: 97079
diff changeset
1334 (define-key map "%&" 'dired-flag-garbage-files)
16500
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1335 ;; Commands for marking and unmarking.
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1336 (define-key map "*" nil)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1337 (define-key map "**" 'dired-mark-executables)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1338 (define-key map "*/" 'dired-mark-directories)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1339 (define-key map "*@" 'dired-mark-symlinks)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1340 (define-key map "*%" 'dired-mark-files-regexp)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1341 (define-key map "*c" 'dired-change-marks)
16514
c270f12e9373 (dired-mode-map): Put dired-mark-subdir-files on *s.
Richard M. Stallman <rms@gnu.org>
parents: 16501
diff changeset
1342 (define-key map "*s" 'dired-mark-subdir-files)
16500
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1343 (define-key map "*m" 'dired-mark)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1344 (define-key map "*u" 'dired-unmark)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1345 (define-key map "*?" 'dired-unmark-all-files)
18160
c64b7a17eea9 (dired-unmark-all-marks):
Richard M. Stallman <rms@gnu.org>
parents: 17988
diff changeset
1346 (define-key map "*!" 'dired-unmark-all-marks)
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1347 (define-key map "U" 'dired-unmark-all-marks)
16500
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1348 (define-key map "*\177" 'dired-unmark-backward)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1349 (define-key map "*\C-n" 'dired-next-marked-file)
707d6f8c6381 (dired-mode-map): Make * a prefix for mark commands.
Richard M. Stallman <rms@gnu.org>
parents: 16490
diff changeset
1350 (define-key map "*\C-p" 'dired-prev-marked-file)
44212
e87d819f2887 (dired-toggle-marks): Renamed from dired-do-toggle. Bindings changed.
Richard M. Stallman <rms@gnu.org>
parents: 44061
diff changeset
1351 (define-key map "*t" 'dired-toggle-marks)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1352 ;; Lower keys for commands not operating on all the marked files
30108
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
1353 (define-key map "a" 'dired-find-alternate-file)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1354 (define-key map "d" 'dired-flag-file-deletion)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1355 (define-key map "e" 'dired-find-file)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1356 (define-key map "f" 'dired-find-file)
104922
c603ee2aac17 * keymap.c (QCadvertised_binding): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104681
diff changeset
1357 (define-key map "\C-m" 'dired-find-file)
c603ee2aac17 * keymap.c (QCadvertised_binding): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104681
diff changeset
1358 (put 'dired-find-file :advertised-binding "\C-m")
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1359 (define-key map "g" 'revert-buffer)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1360 (define-key map "h" 'describe-mode)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1361 (define-key map "i" 'dired-maybe-insert-subdir)
70802
e1bfa36494e2 (dired-mode-map): Put dired-goto-file on j, not M-g.
Richard M. Stallman <rms@gnu.org>
parents: 69783
diff changeset
1362 (define-key map "j" 'dired-goto-file)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1363 (define-key map "k" 'dired-do-kill-lines)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1364 (define-key map "l" 'dired-do-redisplay)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1365 (define-key map "m" 'dired-mark)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1366 (define-key map "n" 'dired-next-line)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1367 (define-key map "o" 'dired-find-file-other-window)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1368 (define-key map "\C-o" 'dired-display-file)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1369 (define-key map "p" 'dired-previous-line)
21095
f557f5e4137f (dired-quit): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 21047
diff changeset
1370 (define-key map "q" 'quit-window)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1371 (define-key map "s" 'dired-sort-toggle-or-edit)
44212
e87d819f2887 (dired-toggle-marks): Renamed from dired-do-toggle. Bindings changed.
Richard M. Stallman <rms@gnu.org>
parents: 44061
diff changeset
1372 (define-key map "t" 'dired-toggle-marks)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1373 (define-key map "u" 'dired-unmark)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1374 (define-key map "v" 'dired-view-file)
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
1375 (define-key map "w" 'dired-copy-filename-as-kill)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1376 (define-key map "x" 'dired-do-flagged-delete)
38990
8911bc85234c (dired-mode-map): Bind `y' to dired-show-file-type
Gerd Moellmann <gerd@gnu.org>
parents: 38426
diff changeset
1377 (define-key map "y" 'dired-show-file-type)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1378 (define-key map "+" 'dired-create-directory)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1379 ;; moving
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1380 (define-key map "<" 'dired-prev-dirline)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1381 (define-key map ">" 'dired-next-dirline)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1382 (define-key map "^" 'dired-up-directory)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1383 (define-key map " " 'dired-next-line)
109487
2d68a79d5213 * dired.el (dired-mode-map): Use command remapping (bug#6632).
Juanma Barranquero <lekktu@gmail.com>
parents: 108806
diff changeset
1384 (define-key map [remap next-line] 'dired-next-line)
2d68a79d5213 * dired.el (dired-mode-map): Use command remapping (bug#6632).
Juanma Barranquero <lekktu@gmail.com>
parents: 108806
diff changeset
1385 (define-key map [remap previous-line] 'dired-previous-line)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1386 ;; hiding
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1387 (define-key map "$" 'dired-hide-subdir)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1388 (define-key map "\M-$" 'dired-hide-all)
97062
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1389 ;; isearch
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1390 (define-key map (kbd "M-s a C-s") 'dired-do-isearch)
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1391 (define-key map (kbd "M-s a M-C-s") 'dired-do-isearch-regexp)
97079
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1392 (define-key map (kbd "M-s f C-s") 'dired-isearch-filenames)
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1393 (define-key map (kbd "M-s f M-C-s") 'dired-isearch-filenames-regexp)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1394 ;; misc
109487
2d68a79d5213 * dired.el (dired-mode-map): Use command remapping (bug#6632).
Juanma Barranquero <lekktu@gmail.com>
parents: 108806
diff changeset
1395 (define-key map [remap toggle-read-only] 'dired-toggle-read-only)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1396 (define-key map "?" 'dired-summary)
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1397 (define-key map "\177" 'dired-unmark-backward)
59786
aa04ceecde25 (dired-mode-map): Remap `undo' and `advertised-undo'
Richard M. Stallman <rms@gnu.org>
parents: 59279
diff changeset
1398 (define-key map [remap undo] 'dired-undo)
aa04ceecde25 (dired-mode-map): Remap `undo' and `advertised-undo'
Richard M. Stallman <rms@gnu.org>
parents: 59279
diff changeset
1399 (define-key map [remap advertised-undo] 'dired-undo)
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1400 ;; thumbnail manipulation (image-dired)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1401 (define-key map "\C-td" 'image-dired-display-thumbs)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1402 (define-key map "\C-tt" 'image-dired-tag-files)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1403 (define-key map "\C-tr" 'image-dired-delete-tag)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1404 (define-key map "\C-tj" 'image-dired-jump-thumbnail-buffer)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1405 (define-key map "\C-ti" 'image-dired-dired-display-image)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1406 (define-key map "\C-tx" 'image-dired-dired-display-external)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1407 (define-key map "\C-ta" 'image-dired-display-thumbs-append)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1408 (define-key map "\C-t." 'image-dired-display-thumb)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1409 (define-key map "\C-tc" 'image-dired-dired-comment-files)
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1410 (define-key map "\C-tf" 'image-dired-mark-tagged-files)
108780
eccb3cdf5081 * dired.el (dired-mode-map): Rebind "\C-t\C-t" from
Juri Linkov <juri@jurta.org>
parents: 108715
diff changeset
1411 (define-key map "\C-t\C-t" 'image-dired-dired-toggle-marked-thumbs)
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1412 (define-key map "\C-te" 'image-dired-dired-edit-comment-and-tags)
94417
1a8916b995cf * epa-file.el (auto-encryption-mode): Rename from epa-file-mode.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94145
diff changeset
1413 ;; encryption and decryption (epa-dired)
1a8916b995cf * epa-file.el (auto-encryption-mode): Rename from epa-file-mode.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94145
diff changeset
1414 (define-key map ":d" 'epa-dired-do-decrypt)
1a8916b995cf * epa-file.el (auto-encryption-mode): Rename from epa-file-mode.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94145
diff changeset
1415 (define-key map ":v" 'epa-dired-do-verify)
1a8916b995cf * epa-file.el (auto-encryption-mode): Rename from epa-file-mode.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94145
diff changeset
1416 (define-key map ":s" 'epa-dired-do-sign)
1a8916b995cf * epa-file.el (auto-encryption-mode): Rename from epa-file-mode.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94145
diff changeset
1417 (define-key map ":e" 'epa-dired-do-encrypt)
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1418
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1419 ;; Make menu bar items.
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1420
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1421 ;; No need to fo this, now that top-level items are fewer.
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1422 ;;;;
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1423 ;; Get rid of the Edit menu bar item to save space.
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1424 ;(define-key map [menu-bar edit] 'undefined)
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1425
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1426 (define-key map [menu-bar subdir]
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1427 (cons "Subdir" (make-sparse-keymap "Subdir")))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1428
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1429 (define-key map [menu-bar subdir hide-all]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1430 '(menu-item "Hide All" dired-hide-all
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1431 :help "Hide all subdirectories, leave only header lines"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1432 (define-key map [menu-bar subdir hide-subdir]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1433 '(menu-item "Hide/UnHide Subdir" dired-hide-subdir
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1434 :help "Hide or unhide current directory listing"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1435 (define-key map [menu-bar subdir tree-down]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1436 '(menu-item "Tree Down" dired-tree-down
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1437 :help "Go to first subdirectory header down the tree"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1438 (define-key map [menu-bar subdir tree-up]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1439 '(menu-item "Tree Up" dired-tree-up
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1440 :help "Go to first subdirectory header up the tree"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1441 (define-key map [menu-bar subdir up]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1442 '(menu-item "Up Directory" dired-up-directory
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1443 :help "Edit the parent directory"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1444 (define-key map [menu-bar subdir prev-subdir]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1445 '(menu-item "Prev Subdir" dired-prev-subdir
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1446 :help "Go to previous subdirectory header line"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1447 (define-key map [menu-bar subdir next-subdir]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1448 '(menu-item "Next Subdir" dired-next-subdir
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1449 :help "Go to next subdirectory header line"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1450 (define-key map [menu-bar subdir prev-dirline]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1451 '(menu-item "Prev Dirline" dired-prev-dirline
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1452 :help "Move to next directory-file line"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1453 (define-key map [menu-bar subdir next-dirline]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1454 '(menu-item "Next Dirline" dired-next-dirline
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1455 :help "Move to previous directory-file line"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1456 (define-key map [menu-bar subdir insert]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1457 '(menu-item "Insert This Subdir" dired-maybe-insert-subdir
105904
f49caf3c20c7 * dired-aux.el (dired-query): Place cursor in echo area and allow
Chong Yidong <cyd@stupidchicken.com>
parents: 105647
diff changeset
1458 :help "Insert contents of subdirectory"
f49caf3c20c7 * dired-aux.el (dired-query): Place cursor in echo area and allow
Chong Yidong <cyd@stupidchicken.com>
parents: 105647
diff changeset
1459 :enable (let ((f (dired-get-filename nil t)))
f49caf3c20c7 * dired-aux.el (dired-query): Place cursor in echo area and allow
Chong Yidong <cyd@stupidchicken.com>
parents: 105647
diff changeset
1460 (and f (file-directory-p f)))))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1461 (define-key map [menu-bar immediate]
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1462 (cons "Immediate" (make-sparse-keymap "Immediate")))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1463
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1464 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1465 [menu-bar immediate image-dired-dired-display-external]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1466 '(menu-item "Display Image Externally" image-dired-dired-display-external
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1467 :help "Display image in external viewer"))
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1468 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1469 [menu-bar immediate image-dired-dired-display-image]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1470 '(menu-item "Display Image" image-dired-dired-display-image
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1471 :help "Display sized image in a separate window"))
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1472
16090
cf84933860ed (dired-mode-map): Add revert-buffer to Immediate menu.
Richard M. Stallman <rms@gnu.org>
parents: 15944
diff changeset
1473 (define-key map [menu-bar immediate revert-buffer]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1474 '(menu-item "Refresh" revert-buffer
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1475 :help "Update contents of shown directories"))
16090
cf84933860ed (dired-mode-map): Add revert-buffer to Immediate menu.
Richard M. Stallman <rms@gnu.org>
parents: 15944
diff changeset
1476
cf84933860ed (dired-mode-map): Add revert-buffer to Immediate menu.
Richard M. Stallman <rms@gnu.org>
parents: 15944
diff changeset
1477 (define-key map [menu-bar immediate dashes]
cf84933860ed (dired-mode-map): Add revert-buffer to Immediate menu.
Richard M. Stallman <rms@gnu.org>
parents: 15944
diff changeset
1478 '("--"))
cf84933860ed (dired-mode-map): Add revert-buffer to Immediate menu.
Richard M. Stallman <rms@gnu.org>
parents: 15944
diff changeset
1479
97079
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1480 (define-key map [menu-bar immediate isearch-filenames-regexp]
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1481 '(menu-item "Isearch Regexp in File Names..." dired-isearch-filenames-regexp
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1482 :help "Incrementally search for regexp in file names only"))
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1483 (define-key map [menu-bar immediate isearch-filenames]
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1484 '(menu-item "Isearch in File Names..." dired-isearch-filenames
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1485 :help "Incrementally search for string in file names only."))
60893
a3d87fda9c16 (dired-mode-map): Add menu item "Compare directories"
Juri Linkov <juri@jurta.org>
parents: 60097
diff changeset
1486 (define-key map [menu-bar immediate compare-directories]
70984
2a033afe32cd * dired.el (dired-mode-map): Change `tumme-tag-remove' to
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70981
diff changeset
1487 '(menu-item "Compare Directories..." dired-compare-directories
60893
a3d87fda9c16 (dired-mode-map): Add menu item "Compare directories"
Juri Linkov <juri@jurta.org>
parents: 60097
diff changeset
1488 :help "Mark files with different attributes in two dired buffers"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1489 (define-key map [menu-bar immediate backup-diff]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1490 '(menu-item "Compare with Backup" dired-backup-diff
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1491 :help "Diff file at cursor with its latest backup"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1492 (define-key map [menu-bar immediate diff]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1493 '(menu-item "Diff..." dired-diff
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1494 :help "Compare file at cursor with another file"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1495 (define-key map [menu-bar immediate view]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1496 '(menu-item "View This File" dired-view-file
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1497 :help "Examine file at cursor in read-only mode"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1498 (define-key map [menu-bar immediate display]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1499 '(menu-item "Display in Other Window" dired-display-file
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1500 :help "Display file at cursor in other window"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1501 (define-key map [menu-bar immediate find-file-other-window]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1502 '(menu-item "Find in Other Window" dired-find-file-other-window
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1503 :help "Edit file at cursor in other window"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1504 (define-key map [menu-bar immediate find-file]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1505 '(menu-item "Find This File" dired-find-file
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1506 :help "Edit file at cursor"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1507 (define-key map [menu-bar immediate create-directory]
94489
746622b8b8d4 (dired-mode-map): Add :help.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94485
diff changeset
1508 '(menu-item "Create Directory..." dired-create-directory
746622b8b8d4 (dired-mode-map): Add :help.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94485
diff changeset
1509 :help "Create a directory"))
55108
7b14aa2880ba (dired-mode-map): Add a menu entry for wdired.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 55058
diff changeset
1510 (define-key map [menu-bar immediate wdired-mode]
82195
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1511 '(menu-item "Edit File Names" wdired-change-to-wdired-mode
94489
746622b8b8d4 (dired-mode-map): Add :help.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 94485
diff changeset
1512 :help "Put a dired buffer in a mode in which filenames are editable"
96920
3aa8d40c3218 * dired.el (dired-mode-map): Show the key binding for wdired.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 96821
diff changeset
1513 :keys "C-x C-q"
82195
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1514 :filter (lambda (x) (if (eq major-mode 'dired-mode) x))))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1515
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1516 (define-key map [menu-bar regexp]
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1517 (cons "Regexp" (make-sparse-keymap "Regexp")))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1518
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1519 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1520 [menu-bar regexp image-dired-mark-tagged-files]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1521 '(menu-item "Mark From Image Tag..." image-dired-mark-tagged-files
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
1522 :help "Mark files whose image tags matches regexp"))
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
1523
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1524 (define-key map [menu-bar regexp dashes-1]
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
1525 '("--"))
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1526
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1527 (define-key map [menu-bar regexp downcase]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1528 '(menu-item "Downcase" dired-downcase
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1529 ;; When running on plain MS-DOS, there's only one
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1530 ;; letter-case for file names.
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1531 :enable (or (not (fboundp 'msdos-long-file-names))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1532 (msdos-long-file-names))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1533 :help "Rename marked files to lower-case name"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1534 (define-key map [menu-bar regexp upcase]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1535 '(menu-item "Upcase" dired-upcase
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1536 :enable (or (not (fboundp 'msdos-long-file-names))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1537 (msdos-long-file-names))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1538 :help "Rename marked files to upper-case name"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1539 (define-key map [menu-bar regexp hardlink]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1540 '(menu-item "Hardlink..." dired-do-hardlink-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1541 :help "Make hard links for files matching regexp"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1542 (define-key map [menu-bar regexp symlink]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1543 '(menu-item "Symlink..." dired-do-symlink-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1544 :visible (fboundp 'make-symbolic-link)
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1545 :help "Make symbolic links for files matching regexp"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1546 (define-key map [menu-bar regexp rename]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1547 '(menu-item "Rename..." dired-do-rename-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1548 :help "Rename marked files matching regexp"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1549 (define-key map [menu-bar regexp copy]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1550 '(menu-item "Copy..." dired-do-copy-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1551 :help "Copy marked files matching regexp"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1552 (define-key map [menu-bar regexp flag]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1553 '(menu-item "Flag..." dired-flag-files-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1554 :help "Flag files matching regexp for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1555 (define-key map [menu-bar regexp mark]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1556 '(menu-item "Mark..." dired-mark-files-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1557 :help "Mark files matching regexp for future operations"))
24023
4d7de66c650e (dired-mode-map): Fix duplicate [menu-bar regexp mark].
Dave Love <fx@gnu.org>
parents: 23230
diff changeset
1558 (define-key map [menu-bar regexp mark-cont]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1559 '(menu-item "Mark Containing..." dired-mark-files-containing-regexp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1560 :help "Mark files whose contents matches regexp"))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1561
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1562 (define-key map [menu-bar mark]
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1563 (cons "Mark" (make-sparse-keymap "Mark")))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1564
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1565 (define-key map [menu-bar mark prev]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1566 '(menu-item "Previous Marked" dired-prev-marked-file
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1567 :help "Move to previous marked file"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1568 (define-key map [menu-bar mark next]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1569 '(menu-item "Next Marked" dired-next-marked-file
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1570 :help "Move to next marked file"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1571 (define-key map [menu-bar mark marks]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1572 '(menu-item "Change Marks..." dired-change-marks
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1573 :help "Replace marker with another character"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1574 (define-key map [menu-bar mark unmark-all]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1575 '(menu-item "Unmark All" dired-unmark-all-marks))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1576 (define-key map [menu-bar mark symlinks]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1577 '(menu-item "Mark Symlinks" dired-mark-symlinks
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1578 :visible (fboundp 'make-symbolic-link)
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1579 :help "Mark all symbolic links"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1580 (define-key map [menu-bar mark directories]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1581 '(menu-item "Mark Directories" dired-mark-directories
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1582 :help "Mark all directories except `.' and `..'"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1583 (define-key map [menu-bar mark directory]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1584 '(menu-item "Mark Old Backups" dired-clean-directory
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1585 :help "Flag old numbered backups for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1586 (define-key map [menu-bar mark executables]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1587 '(menu-item "Mark Executables" dired-mark-executables
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1588 :help "Mark all executable files"))
16825
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
1589 (define-key map [menu-bar mark garbage-files]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1590 '(menu-item "Flag Garbage Files" dired-flag-garbage-files
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1591 :help "Flag unneeded files for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1592 (define-key map [menu-bar mark backup-files]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1593 '(menu-item "Flag Backup Files" dired-flag-backup-files
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1594 :help "Flag all backup files for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1595 (define-key map [menu-bar mark auto-save-files]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1596 '(menu-item "Flag Auto-save Files" dired-flag-auto-save-files
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1597 :help "Flag auto-save files for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1598 (define-key map [menu-bar mark deletion]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1599 '(menu-item "Flag" dired-flag-file-deletion
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1600 :help "Flag current line's file for deletion"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1601 (define-key map [menu-bar mark unmark]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1602 '(menu-item "Unmark" dired-unmark
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1603 :help "Unmark or unflag current line's file"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1604 (define-key map [menu-bar mark mark]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1605 '(menu-item "Mark" dired-mark
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1606 :help "Mark current line's file for future operations"))
20991
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
1607 (define-key map [menu-bar mark toggle-marks]
44212
e87d819f2887 (dired-toggle-marks): Renamed from dired-do-toggle. Bindings changed.
Richard M. Stallman <rms@gnu.org>
parents: 44061
diff changeset
1608 '(menu-item "Toggle Marks" dired-toggle-marks
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1609 :help "Mark unmarked files, unmark marked ones"))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1610
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1611 (define-key map [menu-bar operate]
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1612 (cons "Operate" (make-sparse-keymap "Operate")))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1613
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1614 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1615 [menu-bar operate image-dired-delete-tag]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1616 '(menu-item "Delete Image Tag..." image-dired-delete-tag
70981
755bf4667ffb * dired.el (dired-mode-map): Change `tumme-tag-remove' to
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70977
diff changeset
1617 :help "Delete image tag from current or marked files"))
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1618 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1619 [menu-bar operate image-dired-tag-files]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1620 '(menu-item "Add Image Tags..." image-dired-tag-files
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1621 :help "Add image tags to current or marked files"))
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1622 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1623 [menu-bar operate image-dired-dired-comment-files]
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1624 '(menu-item "Add Image Comment..." image-dired-dired-comment-files
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1625 :help "Add image comment to current or marked files"))
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1626 (define-key map
77402
dd08291401af Rename "thumbnails" to "image-dired".
Chong Yidong <cyd@stupidchicken.com>
parents: 77394
diff changeset
1627 [menu-bar operate image-dired-display-thumbs]
96821
e1156184215a (dired-mode-map): Fix menu text of image-dired-display-thumbs.
Juri Linkov <juri@jurta.org>
parents: 95841
diff changeset
1628 '(menu-item "Display image thumbnails" image-dired-display-thumbs
e1156184215a (dired-mode-map): Fix menu text of image-dired-display-thumbs.
Juri Linkov <juri@jurta.org>
parents: 95841
diff changeset
1629 :help "Display image thumbnails for current or marked image files"))
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
1630
106031
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1631 (define-key map [menu-bar operate dashes-4]
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1632 '("--"))
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1633
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1634 (define-key map
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1635 [menu-bar operate epa-dired-do-decrypt]
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1636 '(menu-item "Decrypt" epa-dired-do-decrypt
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1637 :help "Decrypt file at cursor"))
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1638
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1639 (define-key map
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1640 [menu-bar operate epa-dired-do-verify]
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1641 '(menu-item "Verify" epa-dired-do-verify
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1642 :help "Verify digital signature of file at cursor"))
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1643
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1644 (define-key map
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1645 [menu-bar operate epa-dired-do-sign]
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1646 '(menu-item "Sign" epa-dired-do-sign
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1647 :help "Create digital signature of file at cursor"))
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1648
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1649 (define-key map
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1650 [menu-bar operate epa-dired-do-encrypt]
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1651 '(menu-item "Encrypt" epa-dired-do-encrypt
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1652 :help "Encrypt file at cursor"))
01ca1d5c7d8a * dired.el (dired-mode-map): Move encryption items to "Operate"
Chong Yidong <cyd@stupidchicken.com>
parents: 105994
diff changeset
1653
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1654 (define-key map [menu-bar operate dashes-3]
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
1655 '("--"))
70977
88e8184b9f87 (dired-mode-map): Move tumme commands to Operate,
Mathias Dahl <mathias.dahl@gmail.com>
parents: 70920
diff changeset
1656
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1657 (define-key map [menu-bar operate query-replace]
28937
2d65f0ae4167 (dired-mode-map): Use dired-do-query-replace-regexp.
Gerd Moellmann <gerd@gnu.org>
parents: 28737
diff changeset
1658 '(menu-item "Query Replace in Files..." dired-do-query-replace-regexp
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1659 :help "Replace regexp in marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1660 (define-key map [menu-bar operate search]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1661 '(menu-item "Search Files..." dired-do-search
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1662 :help "Search marked files for regexp"))
97062
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1663 (define-key map [menu-bar operate isearch-regexp]
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1664 '(menu-item "Isearch Regexp Files..." dired-do-isearch-regexp
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1665 :help "Incrementally search marked files for regexp"))
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1666 (define-key map [menu-bar operate isearch]
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1667 '(menu-item "Isearch Files..." dired-do-isearch
a84502b647f0 (dired-mode-map): Bind dired-do-isearch to `M-s a C-s'
Juri Linkov <juri@jurta.org>
parents: 96920
diff changeset
1668 :help "Incrementally search marked files for string"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1669 (define-key map [menu-bar operate chown]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1670 '(menu-item "Change Owner..." dired-do-chown
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1671 :visible (not (memq system-type '(ms-dos windows-nt)))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1672 :help "Change the owner of marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1673 (define-key map [menu-bar operate chgrp]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1674 '(menu-item "Change Group..." dired-do-chgrp
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1675 :visible (not (memq system-type '(ms-dos windows-nt)))
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1676 :help "Change the group of marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1677 (define-key map [menu-bar operate chmod]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1678 '(menu-item "Change Mode..." dired-do-chmod
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1679 :help "Change mode (attributes) of marked files"))
54663
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
1680 (define-key map [menu-bar operate touch]
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
1681 '(menu-item "Change Timestamp..." dired-do-touch
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
1682 :help "Change timestamp of marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1683 (define-key map [menu-bar operate load]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1684 '(menu-item "Load" dired-do-load
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1685 :help "Load marked Emacs Lisp files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1686 (define-key map [menu-bar operate compile]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1687 '(menu-item "Byte-compile" dired-do-byte-compile
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1688 :help "Byte-compile marked Emacs Lisp files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1689 (define-key map [menu-bar operate compress]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1690 '(menu-item "Compress" dired-do-compress
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1691 :help "Compress/uncompress marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1692 (define-key map [menu-bar operate print]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1693 '(menu-item "Print..." dired-do-print
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1694 :help "Ask for print command and print marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1695 (define-key map [menu-bar operate hardlink]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1696 '(menu-item "Hardlink to..." dired-do-hardlink
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1697 :help "Make hard links for current or marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1698 (define-key map [menu-bar operate symlink]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1699 '(menu-item "Symlink to..." dired-do-symlink
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1700 :visible (fboundp 'make-symbolic-link)
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1701 :help "Make symbolic links for current or marked files"))
105024
3db1f3571655 (dired-mode-map): Add menu entry for async shell command.
Glenn Morris <rgm@gnu.org>
parents: 104944
diff changeset
1702 (define-key map [menu-bar operate async-command]
3db1f3571655 (dired-mode-map): Add menu entry for async shell command.
Glenn Morris <rgm@gnu.org>
parents: 104944
diff changeset
1703 '(menu-item "Asynchronous Shell Command..." dired-do-async-shell-command
3db1f3571655 (dired-mode-map): Add menu entry for async shell command.
Glenn Morris <rgm@gnu.org>
parents: 104944
diff changeset
1704 :help "Run a shell command asynchronously on current or marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1705 (define-key map [menu-bar operate command]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1706 '(menu-item "Shell Command..." dired-do-shell-command
105024
3db1f3571655 (dired-mode-map): Add menu entry for async shell command.
Glenn Morris <rgm@gnu.org>
parents: 104944
diff changeset
1707 :help "Run a shell command on current or marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1708 (define-key map [menu-bar operate delete]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1709 '(menu-item "Delete" dired-do-delete
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1710 :help "Delete current file or all marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1711 (define-key map [menu-bar operate rename]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1712 '(menu-item "Rename to..." dired-do-rename
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1713 :help "Rename current file or move marked files"))
12801
f4e3e478c1b1 (dired-mode-map): Set up the map completely
Richard M. Stallman <rms@gnu.org>
parents: 12736
diff changeset
1714 (define-key map [menu-bar operate copy]
27840
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1715 '(menu-item "Copy to..." dired-do-copy
1e17908c52b8 (dired-mode-map): Don't remove "Edit" from the menu
Eli Zaretskii <eliz@gnu.org>
parents: 27784
diff changeset
1716 :help "Copy current file or all marked files"))
4099
b62687587309 (dired-mode-map): Add menu bar items.
Richard M. Stallman <rms@gnu.org>
parents: 3822
diff changeset
1717
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1718 map)
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1719 "Local keymap for `dired-mode' buffers.")
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
1720
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1721 ;; Dired mode is suitable only for specially formatted data.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1722 (put 'dired-mode 'mode-class 'special)
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1723
64894
aee8ba4e5b1a Add handler to desktop-buffer-mode-handlers.
Lars Hansen <larsh@soem.dk>
parents: 64762
diff changeset
1724 ;; Autoload cookie needed by desktop.el
aee8ba4e5b1a Add handler to desktop-buffer-mode-handlers.
Lars Hansen <larsh@soem.dk>
parents: 64762
diff changeset
1725 ;;;###autoload
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1726 (defun dired-mode (&optional dirname switches)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1727 "\
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1728 Mode for \"editing\" directory listings.
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1729 In Dired, you are \"editing\" a list of the files in a directory and
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1730 \(optionally) its subdirectories, in the format of `ls -lR'.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1731 Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1732 \"Editing\" means that you can run shell commands on files, visit,
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1733 compress, load or byte-compile them, change their file attributes
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1734 and insert subdirectories into the same buffer. You can \"mark\"
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1735 files for later commands or \"flag\" them for deletion, either file
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1736 by file or all files matching certain criteria.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1737 You can move using the usual cursor motion commands.\\<dired-mode-map>
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1738 Letters no longer insert themselves. Digits are prefix arguments.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1739 Instead, type \\[dired-flag-file-deletion] to flag a file for Deletion.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1740 Type \\[dired-mark] to Mark a file or subdirectory for later commands.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1741 Most commands operate on the marked files and use the current file
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1742 if no files are marked. Use a numeric prefix argument to operate on
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1743 the next ARG (or previous -ARG if ARG<0) files, or just `1'
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1744 to operate on the current file only. Prefix arguments override marks.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1745 Mark-using commands display a list of failures afterwards. Type \\[dired-summary]
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1746 to see why something went wrong.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1747 Type \\[dired-unmark] to Unmark a file or all files of a subdirectory.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1748 Type \\[dired-unmark-backward] to back up one line and unflag.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1749 Type \\[dired-do-flagged-delete] to eXecute the deletions requested.
104922
c603ee2aac17 * keymap.c (QCadvertised_binding): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104681
diff changeset
1750 Type \\[dired-find-file] to Find the current line's file
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1751 (or dired it in another buffer, if it is a directory).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1752 Type \\[dired-find-file-other-window] to find file or dired directory in Other window.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1753 Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1754 Type \\[dired-do-rename] to Rename a file or move the marked files to another directory.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1755 Type \\[dired-do-copy] to Copy files.
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1756 Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches.
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1757 Type \\[revert-buffer] to read all currently expanded directories aGain.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1758 This retains all marks and hides subdirs again that were hidden before.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1759 SPC and DEL can be used to move down and up by lines.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1760
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1761 If Dired ever gets confused, you can either type \\[revert-buffer] \
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1762 to read the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1763 directories again, type \\[dired-do-redisplay] \
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1764 to relist a single or the marked files or a
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1765 subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1766 again for the directory tree.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1767
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1768 Customization variables (rename this buffer and type \\[describe-variable] on each line
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1769 for more info):
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1770
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1771 `dired-listing-switches'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1772 `dired-trivial-filenames'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1773 `dired-shrink-to-fit'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1774 `dired-marker-char'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1775 `dired-del-marker'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1776 `dired-keep-marker-rename'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1777 `dired-keep-marker-copy'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1778 `dired-keep-marker-hardlink'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1779 `dired-keep-marker-symlink'
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1780
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1781 Hooks (use \\[describe-variable] to see their documentation):
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1782
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1783 `dired-before-readin-hook'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1784 `dired-after-readin-hook'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1785 `dired-mode-hook'
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1786 `dired-load-hook'
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1787
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1788 Keybindings:
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1789 \\{dired-mode-map}"
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1790 ;; Not to be called interactively (e.g. dired-directory will be set
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1791 ;; to default-directory, which is wrong with wildcards).
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1792 (kill-all-local-variables)
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1793 (use-local-map dired-mode-map)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1794 (dired-advertise) ; default-directory is already set
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1795 (setq major-mode 'dired-mode
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1796 mode-name "Dired"
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
1797 ;; case-fold-search nil
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1798 buffer-read-only t
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1799 selective-display t ; for subdirectory hiding
27784
c27b002e4491 (dired-mode): Call propertized-buffer-identification to
Gerd Moellmann <gerd@gnu.org>
parents: 27051
diff changeset
1800 mode-line-buffer-identification
c27b002e4491 (dired-mode): Call propertized-buffer-identification to
Gerd Moellmann <gerd@gnu.org>
parents: 27051
diff changeset
1801 (propertized-buffer-identification "%17b"))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1802 (set (make-local-variable 'revert-buffer-function)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1803 (function dired-revert))
54512
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
1804 (set (make-local-variable 'buffer-stale-function)
1042cb3d696b (dired-directory-changed-p, dired-buffer-stale-p): New functions.
Luc Teirlinck <teirllm@auburn.edu>
parents: 53789
diff changeset
1805 (function dired-buffer-stale-p))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1806 (set (make-local-variable 'page-delimiter)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1807 "\n\n")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1808 (set (make-local-variable 'dired-directory)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1809 (or dirname default-directory))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1810 ;; list-buffers uses this to display the dir being edited in this buffer.
105196
d991506f9286 * menu-bar.el (list-buffers-directory): Add docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
1811 (setq list-buffers-directory
d991506f9286 * menu-bar.el (list-buffers-directory): Add docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
1812 (expand-file-name (if (listp dired-directory)
d991506f9286 * menu-bar.el (list-buffers-directory): Add docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
1813 (car dired-directory)
d991506f9286 * menu-bar.el (list-buffers-directory): Add docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
1814 dired-directory)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1815 (set (make-local-variable 'dired-actual-switches)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1816 (or switches dired-listing-switches))
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1817 (set (make-local-variable 'font-lock-defaults)
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
1818 '(dired-font-lock-keywords t nil nil beginning-of-line))
55154
9752700e4860 (dired-mode): Rename desktop-buffer-misc-data-function to desktop-save-buffer.
Lars Hansen <larsh@soem.dk>
parents: 55108
diff changeset
1819 (set (make-local-variable 'desktop-save-buffer)
55058
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
1820 'dired-desktop-buffer-misc-data)
55937
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
1821 (setq dired-switches-alist nil)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1822 (dired-sort-other dired-actual-switches t)
61478
ca956f06ae9e * dired.el (dired-mode): Use dnd-* instead of x-dnd-*
Jan Djärv <jan.h.d@swipnet.se>
parents: 61296
diff changeset
1823 (when (featurep 'dnd)
62439
af763a03ded2 (dired-mode): Simplify.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 62373
diff changeset
1824 (set (make-local-variable 'dnd-protocol-alist)
af763a03ded2 (dired-mode): Simplify.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 62373
diff changeset
1825 (append dired-dnd-protocol-alist dnd-protocol-alist)))
106239
0ac473df1bd1 Provide additional default values (file name at point or at the
Juri Linkov <juri@jurta.org>
parents: 106120
diff changeset
1826 (add-hook 'file-name-at-point-functions 'dired-file-name-at-point nil t)
97079
22b04404b5d5 (dired-insert-set-properties): Add new text property
Juri Linkov <juri@jurta.org>
parents: 97062
diff changeset
1827 (add-hook 'isearch-mode-hook 'dired-isearch-filenames-setup nil t)
62240
19d278c4224b * dnd.el (dnd-protocol-alist): Improve custom type.
Reiner Steib <Reiner.Steib@gmx.de>
parents: 61478
diff changeset
1828 (run-mode-hooks 'dired-mode-hook))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
1829
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3580
diff changeset
1830 ;; Idiosyncratic dired commands that don't deal with marks.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1831
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1832 (defun dired-summary ()
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1833 "Summarize basic Dired commands and show recent dired errors."
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1834 (interactive)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1835 (dired-why)
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1836 ;>> this should check the key-bindings and use substitute-command-keys if non-standard
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1837 (message
3822
242b72c42f33 * dired.el (dired-summary): dired-do-rename is on "R", not "r".
Jim Blandy <jimb@redhat.com>
parents: 3737
diff changeset
1838 "d-elete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, h-elp"))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1839
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1840 (defun dired-undo ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1841 "Undo in a dired buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1842 This doesn't recover lost files, it just undoes changes in the buffer itself.
55970
58340ec919e5 (dired-undo): Call `dired-build-subdir-alist'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55937
diff changeset
1843 You can use it to recover marks, killed lines or subdirs."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1844 (interactive)
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1845 (let ((inhibit-read-only t))
55970
58340ec919e5 (dired-undo): Call `dired-build-subdir-alist'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55937
diff changeset
1846 (undo))
58340ec919e5 (dired-undo): Call `dired-build-subdir-alist'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55937
diff changeset
1847 (dired-build-subdir-alist)
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1848 (message "Change in dired buffer undone.
55970
58340ec919e5 (dired-undo): Call `dired-build-subdir-alist'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55937
diff changeset
1849 Actual changes in files cannot be undone by Emacs."))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1850
82195
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1851 (defun dired-toggle-read-only ()
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1852 "Edit dired buffer with Wdired, or set it read-only.
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1853 Call `wdired-change-to-wdired-mode' in dired buffers whose editing is
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1854 supported by Wdired (the major mode of the dired buffer is `dired-mode').
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1855 Otherwise, for buffers inheriting from dired-mode, call `toggle-read-only'."
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1856 (interactive)
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1857 (if (eq major-mode 'dired-mode)
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1858 (wdired-change-to-wdired-mode)
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1859 (toggle-read-only)))
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
1860
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1861 (defun dired-next-line (arg)
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1862 "Move down lines then position at filename.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1863 Optional prefix ARG says how many lines to move; default is one line."
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1864 (interactive "p")
85406
25e29d02bb55 (dired-next-line, dired-previous-line): Use forward-line.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 85311
diff changeset
1865 (forward-line arg)
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1866 (dired-move-to-filename))
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1867
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1868 (defun dired-previous-line (arg)
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1869 "Move up lines then position at filename.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1870 Optional prefix ARG says how many lines to move; default is one line."
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1871 (interactive "p")
85406
25e29d02bb55 (dired-next-line, dired-previous-line): Use forward-line.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 85311
diff changeset
1872 (forward-line (- arg))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1873 (dired-move-to-filename))
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1874
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1875 (defun dired-next-dirline (arg &optional opoint)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1876 "Goto ARG'th next directory file line."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1877 (interactive "p")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1878 (or opoint (setq opoint (point)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1879 (if (if (> arg 0)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1880 (re-search-forward dired-re-dir nil t arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1881 (beginning-of-line)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1882 (re-search-backward dired-re-dir nil t (- arg)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1883 (dired-move-to-filename) ; user may type `i' or `f'
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1884 (goto-char opoint)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1885 (error "No more subdirectories")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1886
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1887 (defun dired-prev-dirline (arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1888 "Goto ARG'th previous directory file line."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1889 (interactive "p")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1890 (dired-next-dirline (- arg)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1891
13033
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 13010
diff changeset
1892 (defun dired-up-directory (&optional other-window)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1893 "Run Dired on parent directory of current directory.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1894 Find the parent directory either in this buffer or another buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1895 Creates a buffer if necessary."
13033
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 13010
diff changeset
1896 (interactive "P")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1897 (let* ((dir (dired-current-directory))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1898 (up (file-name-directory (directory-file-name dir))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1899 (or (dired-goto-file (directory-file-name dir))
1170
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
1900 ;; Only try dired-goto-subdir if buffer has more than one dir.
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
1901 (and (cdr dired-subdir-alist)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1902 (dired-goto-subdir up))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1903 (progn
13033
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 13010
diff changeset
1904 (if other-window
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 13010
diff changeset
1905 (dired-other-window up)
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 13010
diff changeset
1906 (dired up))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1907 (dired-goto-file dir)))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1908
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1909 (defun dired-get-file-for-visit ()
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1910 "Get the current line's file name, with an error if file does not exist."
17988
2e732d9d5b79 (dired-find-file): Likewise.
Kenichi Handa <handa@m17n.org>
parents: 17944
diff changeset
1911 (interactive)
51444
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1912 ;; We pass t for second arg so that we don't get error for `.' and `..'.
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1913 (let ((raw (dired-get-filename nil t))
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1914 file-name)
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1915 (if (null raw)
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1916 (error "No file on this line"))
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
1917 (setq file-name (file-name-sans-versions raw t))
16490
92289a4265ed (dired-find-file): Error if line's file does not exist.
Richard M. Stallman <rms@gnu.org>
parents: 16457
diff changeset
1918 (if (file-exists-p file-name)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1919 file-name
18824
41c3ad77f90a (dired-find-file): Better error message
Richard M. Stallman <rms@gnu.org>
parents: 18160
diff changeset
1920 (if (file-symlink-p file-name)
41c3ad77f90a (dired-find-file): Better error message
Richard M. Stallman <rms@gnu.org>
parents: 18160
diff changeset
1921 (error "File is a symlink to a nonexistent target")
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1922 (error "File no longer exists; type `g' to update dired buffer")))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1923
101546
83a2261dc0ed Comment.
Glenn Morris <rgm@gnu.org>
parents: 100939
diff changeset
1924 ;; Force C-m keybinding rather than `f' or `e' in the mode doc:
104922
c603ee2aac17 * keymap.c (QCadvertised_binding): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104681
diff changeset
1925 (define-obsolete-function-alias 'dired-advertised-find-file 'dired-find-file "23.2")
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1926 (defun dired-find-file ()
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1927 "In Dired, visit the file or directory named on this line."
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1928 (interactive)
51498
031a70df49c9 (dired-get-filename): Don't err for . and .. for calls from dired-add-entry.
Juanma Barranquero <lekktu@gmail.com>
parents: 51444
diff changeset
1929 ;; Bind `find-file-run-dired' so that the command works on directories
50831
5565e45852d3 (dired-find-file): Bind find-file-run-dired around the call to find-file.
Richard M. Stallman <rms@gnu.org>
parents: 50464
diff changeset
1930 ;; too, independent of the user's setting.
5565e45852d3 (dired-find-file): Bind find-file-run-dired around the call to find-file.
Richard M. Stallman <rms@gnu.org>
parents: 50464
diff changeset
1931 (let ((find-file-run-dired t))
5565e45852d3 (dired-find-file): Bind find-file-run-dired around the call to find-file.
Richard M. Stallman <rms@gnu.org>
parents: 50464
diff changeset
1932 (find-file (dired-get-file-for-visit))))
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1933
30108
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
1934 (defun dired-find-alternate-file ()
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1935 "In Dired, visit this file or directory instead of the dired buffer."
30108
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
1936 (interactive)
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
1937 (set-buffer-modified-p nil)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1938 (find-alternate-file (dired-get-file-for-visit)))
46789
cf99f76fc3d4 Add comment for last change.
Andreas Schwab <schwab@suse.de>
parents: 46759
diff changeset
1939 ;; Don't override the setting from .emacs.
46759
6e0e9800f72c Hide disabling of dired-find-alternate-file behind
Andreas Schwab <schwab@suse.de>
parents: 46086
diff changeset
1940 ;;;###autoload (put 'dired-find-alternate-file 'disabled t)
30108
d78375eda4e8 (dired-find-alternate-file): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 28966
diff changeset
1941
6594
bca9e6c8a07f (dired-mouse-find-file-other-window): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6309
diff changeset
1942 (defun dired-mouse-find-file-other-window (event)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1943 "In Dired, visit the file or directory name you click on."
6594
bca9e6c8a07f (dired-mouse-find-file-other-window): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6309
diff changeset
1944 (interactive "e")
44764
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1945 (let (window pos file)
6594
bca9e6c8a07f (dired-mouse-find-file-other-window): New command.
Richard M. Stallman <rms@gnu.org>
parents: 6309
diff changeset
1946 (save-excursion
44764
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1947 (setq window (posn-window (event-end event))
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1948 pos (posn-point (event-end event)))
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1949 (if (not (windowp window))
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1950 (error "No file chosen"))
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1951 (set-buffer (window-buffer window))
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1952 (goto-char pos)
2e019a1ff633 (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 44475
diff changeset
1953 (setq file (dired-get-file-for-visit)))
52369
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1954 (if (file-directory-p file)
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1955 (or (and (cdr dired-subdir-alist)
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1956 (dired-goto-subdir file))
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1957 (progn
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1958 (select-window window)
5e02293b946b (dired-mouse-find-file-other-window):
Richard M. Stallman <rms@gnu.org>
parents: 51846
diff changeset
1959 (dired-other-window file)))
59279
565c4724abdc (dired-view-command-alist): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 59024
diff changeset
1960 (select-window window)
565c4724abdc (dired-view-command-alist): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 59024
diff changeset
1961 (find-file-other-window (file-name-sans-versions file t)))))
44475
9cab12e7e72a (dired-view-command-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 44234
diff changeset
1962
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1963 (defun dired-view-file ()
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
1964 "In Dired, examine a file in view mode, returning to Dired when done.
44475
9cab12e7e72a (dired-view-command-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 44234
diff changeset
1965 When file is a directory, show it in this buffer if it is inserted.
59279
565c4724abdc (dired-view-command-alist): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 59024
diff changeset
1966 Otherwise, display it in another buffer."
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1967 (interactive)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1968 (let ((file (dired-get-file-for-visit)))
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1969 (if (file-directory-p file)
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1970 (or (and (cdr dired-subdir-alist)
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1971 (dired-goto-subdir file))
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1972 (dired file))
59279
565c4724abdc (dired-view-command-alist): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 59024
diff changeset
1973 (view-file file))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1974
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1975 (defun dired-find-file-other-window ()
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1976 "In Dired, visit this file or directory in another window."
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1977 (interactive)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1978 (find-file-other-window (dired-get-file-for-visit)))
878
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
1979
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
1980 (defun dired-display-file ()
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1981 "In Dired, display this file or directory in another window."
878
5b1c5b4286e7 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 834
diff changeset
1982 (interactive)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1983 (display-buffer (find-file-noselect (dired-get-file-for-visit))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
1984
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1985 ;;; Functions for extracting and manipulating file names in Dired buffers.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1986
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1987 (defun dired-get-filename (&optional localp no-error-if-not-filep)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
1988 "In Dired, return name of file mentioned on this line.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1989 Value returned normally includes the directory name.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1990 Optional arg LOCALP with value `no-dir' means don't include directory
51539
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1991 name in result. A value of `verbatim' means to return the name exactly as
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1992 it occurs in the buffer, and a value of t means construct name relative to
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1993 `default-directory', which still may contain slashes if in a subdirectory.
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1994 Optional arg NO-ERROR-IF-NOT-FILEP means treat `.' and `..' as
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1995 regular filenames and return nil if no filename on this line.
244cba9fc534 (dired-re-dot): Make it handle trailing /.
Luc Teirlinck <teirllm@auburn.edu>
parents: 51531
diff changeset
1996 Otherwise, an error occurs in these cases."
26914
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
1997 (let (case-fold-search file p1 p2 already-absolute)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1998 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
1999 (if (setq p1 (dired-move-to-filename (not no-error-if-not-filep)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2000 (setq p2 (dired-move-to-end-of-filename no-error-if-not-filep))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2001 ;; nil if no file on this line, but no-error-if-not-filep is t:
10126
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
2002 (if (setq file (and p1 p2 (buffer-substring p1 p2)))
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
2003 (progn
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
2004 ;; Get rid of the mouse-face property that file names have.
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
2005 (set-text-properties 0 (length file) nil file)
b4262885826e (dired-insert-directory): Quote certain chars with \.
Richard M. Stallman <rms@gnu.org>
parents: 9673
diff changeset
2006 ;; Unquote names quoted by ls or by dired-insert-directory.
102825
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2007 ;; This code was written using `read' to unquote, because
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2008 ;; it's faster than substituting \007 (4 chars) -> ^G (1
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2009 ;; char) etc. in a lisp loop. Unfortunately, this decision
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2010 ;; has necessitated hacks such as dealing with filenames
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2011 ;; with quotation marks in their names.
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2012 (while (string-match "\\(?:[^\\]\\|\\`\\)\\(\"\\)" file)
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2013 (setq file (replace-match "\\\"" nil t file 1)))
14923c394d62 * dired.el (dired-get-filename): Always pass filename through
Chong Yidong <cyd@stupidchicken.com>
parents: 101546
diff changeset
2014 (setq file (read (concat "\"" file "\"")))
50197
ecb46e1986f0 * dired.el (dired-get-filename): Pay attention to the case that
Kenichi Handa <handa@m17n.org>
parents: 49772
diff changeset
2015 ;; The above `read' will return a unibyte string if FILE
ecb46e1986f0 * dired.el (dired-get-filename): Pay attention to the case that
Kenichi Handa <handa@m17n.org>
parents: 49772
diff changeset
2016 ;; contains eight-bit-control/graphic characters.
ecb46e1986f0 * dired.el (dired-get-filename): Pay attention to the case that
Kenichi Handa <handa@m17n.org>
parents: 49772
diff changeset
2017 (if (and enable-multibyte-characters
ecb46e1986f0 * dired.el (dired-get-filename): Pay attention to the case that
Kenichi Handa <handa@m17n.org>
parents: 49772
diff changeset
2018 (not (multibyte-string-p file)))
ecb46e1986f0 * dired.el (dired-get-filename): Pay attention to the case that
Kenichi Handa <handa@m17n.org>
parents: 49772
diff changeset
2019 (setq file (string-to-multibyte file)))))
27051
66940eaf5c5c (dired-get-filename): Don't call file-name-absolute-p with FILE if FILE is nil.
Richard M. Stallman <rms@gnu.org>
parents: 26914
diff changeset
2020 (and file (file-name-absolute-p file)
38214
a4de79556592 (dired-get-filename): A file name starting with ~
Richard M. Stallman <rms@gnu.org>
parents: 38091
diff changeset
2021 ;; A relative file name can start with ~.
a4de79556592 (dired-get-filename): A file name starting with ~
Richard M. Stallman <rms@gnu.org>
parents: 38091
diff changeset
2022 ;; Don't treat it as absolute in this context.
a4de79556592 (dired-get-filename): A file name starting with ~
Richard M. Stallman <rms@gnu.org>
parents: 38091
diff changeset
2023 (not (eq (aref file 0) ?~))
26914
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2024 (setq already-absolute t))
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2025 (cond
43131
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2026 ((null file)
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2027 nil)
51498
031a70df49c9 (dired-get-filename): Don't err for . and .. for calls from dired-add-entry.
Juanma Barranquero <lekktu@gmail.com>
parents: 51444
diff changeset
2028 ((eq localp 'verbatim)
031a70df49c9 (dired-get-filename): Don't err for . and .. for calls from dired-add-entry.
Juanma Barranquero <lekktu@gmail.com>
parents: 51444
diff changeset
2029 file)
51444
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
2030 ((and (not no-error-if-not-filep)
55862
f1e403523e6d (dired-get-filename): Don't use dired-re-dot.
Andreas Schwab <schwab@suse.de>
parents: 55154
diff changeset
2031 (member file '("." "..")))
51444
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
2032 (error "Cannot operate on `.' or `..'"))
26914
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2033 ((and (eq localp 'no-dir) already-absolute)
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2034 (file-name-nondirectory file))
43131
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2035 (already-absolute
47181
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2036 (let ((handler (find-file-name-handler file nil)))
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2037 ;; check for safe-magic property so that we won't
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2038 ;; put /: for names that don't really need them.
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2039 ;; For instance, .gz files when auto-compression-mode is on.
47181
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2040 (if (and handler (not (get handler 'safe-magic)))
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2041 (concat "/:" file)
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2042 file)))
43131
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2043 ((eq localp 'no-dir)
26914
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2044 file)
43131
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2045 ((equal (dired-current-directory) "/")
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2046 (setq file (concat (dired-current-directory localp) file))
47181
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2047 (let ((handler (find-file-name-handler file nil)))
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2048 ;; check for safe-magic property so that we won't
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2049 ;; put /: for names that don't really need them.
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2050 ;; For instance, .gz files when auto-compression-mode is on.
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2051 (if (and handler (not (get handler 'safe-magic)))
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2052 (concat "/:" file)
e17812b1a993 (defgroup dired): Use `files' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 46789
diff changeset
2053 file)))
26914
09c7b74fa57f * ls-lisp.el (ls-lisp-insert-directory): Print an explicit message
Eli Zaretskii <eliz@gnu.org>
parents: 26120
diff changeset
2054 (t
43131
0c878a7e5de7 (dired-get-filename): Add /: when appropriate
Richard M. Stallman <rms@gnu.org>
parents: 43107
diff changeset
2055 (concat (dired-current-directory localp) file)))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2056
10214
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2057 (defun dired-string-replace-match (regexp string newtext
51498
031a70df49c9 (dired-get-filename): Don't err for . and .. for calls from dired-add-entry.
Juanma Barranquero <lekktu@gmail.com>
parents: 51444
diff changeset
2058 &optional literal global)
10214
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2059 "Replace first match of REGEXP in STRING with NEWTEXT.
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2060 If it does not match, nil is returned instead of the new string.
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2061 Optional arg LITERAL means to take NEWTEXT literally.
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2062 Optional arg GLOBAL means to replace all matches."
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2063 (if global
25415
862886e87cf5 (dired-string-replace-match): Return `nil' when no match
Richard M. Stallman <rms@gnu.org>
parents: 24456
diff changeset
2064 (let ((start 0) ret)
12906
28a8f63327fc (dired-string-replace-match): Simplify using replace-match.
Richard M. Stallman <rms@gnu.org>
parents: 12801
diff changeset
2065 (while (string-match regexp string start)
28a8f63327fc (dired-string-replace-match): Simplify using replace-match.
Richard M. Stallman <rms@gnu.org>
parents: 12801
diff changeset
2066 (let ((from-end (- (length string) (match-end 0))))
25415
862886e87cf5 (dired-string-replace-match): Return `nil' when no match
Richard M. Stallman <rms@gnu.org>
parents: 24456
diff changeset
2067 (setq ret (setq string (replace-match newtext t literal string)))
12906
28a8f63327fc (dired-string-replace-match): Simplify using replace-match.
Richard M. Stallman <rms@gnu.org>
parents: 12801
diff changeset
2068 (setq start (- (length string) from-end))))
25415
862886e87cf5 (dired-string-replace-match): Return `nil' when no match
Richard M. Stallman <rms@gnu.org>
parents: 24456
diff changeset
2069 ret)
10214
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2070 (if (not (string-match regexp string 0))
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2071 nil
12906
28a8f63327fc (dired-string-replace-match): Simplify using replace-match.
Richard M. Stallman <rms@gnu.org>
parents: 12801
diff changeset
2072 (replace-match newtext t literal string))))
10214
82e7df72b8a0 (dired-string-replace-match): Function moved here.
Richard M. Stallman <rms@gnu.org>
parents: 10126
diff changeset
2073
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2074 (defun dired-make-absolute (file &optional dir)
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
2075 ;;"Convert FILE (a file name relative to DIR) to an absolute file name."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2076 ;; We can't always use expand-file-name as this would get rid of `.'
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2077 ;; or expand in / instead default-directory if DIR=="".
97142
c3512b2085a0 * bitmaps/README:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97088
diff changeset
2078 ;; This should be good enough for ange-ftp.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2079 ;; It should be reasonably fast, though, as it is called in
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2080 ;; dired-get-filename.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2081 (concat (or dir default-directory) file))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2082
16794
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2083 (defun dired-make-relative (file &optional dir ignore)
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2084 "Convert FILE (an absolute file name) to a name relative to DIR.
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2085 If this is impossible, return FILE unchanged.
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2086 DIR must be a directory name, not a file name."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2087 (or dir (setq dir default-directory))
5003
28ad14078b0e (dired-chown-program): Check for irix, not silicon-graphic-unix.
Richard M. Stallman <rms@gnu.org>
parents: 4888
diff changeset
2088 ;; This case comes into play if default-directory is set to
28ad14078b0e (dired-chown-program): Check for irix, not silicon-graphic-unix.
Richard M. Stallman <rms@gnu.org>
parents: 4888
diff changeset
2089 ;; use ~.
28ad14078b0e (dired-chown-program): Check for irix, not silicon-graphic-unix.
Richard M. Stallman <rms@gnu.org>
parents: 4888
diff changeset
2090 (if (and (> (length dir) 0) (= (aref dir 0) ?~))
28ad14078b0e (dired-chown-program): Check for irix, not silicon-graphic-unix.
Richard M. Stallman <rms@gnu.org>
parents: 4888
diff changeset
2091 (setq dir (expand-file-name dir)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2092 (if (string-match (concat "^" (regexp-quote dir)) file)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2093 (substring file (match-end 0))
56035
e3ace501b5f4 (dired-revert): If buffer is marked unmodified before
Luc Teirlinck <teirllm@auburn.edu>
parents: 56015
diff changeset
2094 ;;; (or no-error
16794
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2095 ;;; (error "%s: not in directory tree growing at %s" file dir))
2de3fd99ae88 (dired-make-relative): Ignore the third argument;
Richard M. Stallman <rms@gnu.org>
parents: 16782
diff changeset
2096 file))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2097
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2098 ;;; Functions for finding the file name in a dired buffer line.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2099
16782
97849649b875 (dired-permission-flags-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16773
diff changeset
2100 (defvar dired-permission-flags-regexp
97849649b875 (dired-permission-flags-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16773
diff changeset
2101 "\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)"
97849649b875 (dired-permission-flags-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16773
diff changeset
2102 "Regular expression to match the permission flags in `ls -l'.")
97849649b875 (dired-permission-flags-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16773
diff changeset
2103
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2104 ;; Move to first char of filename on this line.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2105 ;; Returns position (point) or nil if no filename on this line."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2106 (defun dired-move-to-filename (&optional raise-error eol)
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
2107 "Move to the beginning of the filename on the current line.
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
2108 Return the position of the beginning of the filename, or nil if none found."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2109 ;; This is the UNIX version.
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2110 (or eol (setq eol (line-end-position)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2111 (beginning-of-line)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2112 ;; First try assuming `ls --dired' was used.
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2113 (let ((change (next-single-property-change (point) 'dired-filename nil eol)))
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2114 (cond
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2115 ((and change (< change eol))
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2116 (goto-char change))
66325
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
2117 ((re-search-forward directory-listing-before-filename-regexp eol t)
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2118 (goto-char (match-end 0)))
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2119 ((re-search-forward dired-permission-flags-regexp eol t)
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2120 ;; Ha! There *is* a file. Our regexp-from-hell just failed to find it.
57228
445f56b6dc24 (dired-move-to-filename): Don't output a message if
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 56423
diff changeset
2121 (if raise-error
66325
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65689
diff changeset
2122 (error "Unrecognized line! Check directory-listing-before-filename-regexp"))
57228
445f56b6dc24 (dired-move-to-filename): Don't output a message if
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 56423
diff changeset
2123 (beginning-of-line)
445f56b6dc24 (dired-move-to-filename): Don't output a message if
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 56423
diff changeset
2124 nil)
47507
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2125 (raise-error
d03e0c2bb52c (dired-font-lock-keywords): Use regexp-opt.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47491
diff changeset
2126 (error "No file on this line")))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2127
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2128 (defun dired-move-to-end-of-filename (&optional no-error)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2129 ;; Assumes point is at beginning of filename,
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2130 ;; thus the rwx bit re-search-backward below will succeed in *this*
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2131 ;; line if at all. So, it should be called only after
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2132 ;; (dired-move-to-filename t).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2133 ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2134 ;; This is the UNIX version.
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2135 (if (get-text-property (point) 'dired-filename)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2136 (goto-char (next-single-property-change (point) 'dired-filename))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2137 (let (opoint file-type executable symlink hidden case-fold-search used-F eol)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2138 ;; case-fold-search is nil now, so we can test for capital F:
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2139 (setq used-F (string-match "F" dired-actual-switches)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2140 opoint (point)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2141 eol (save-excursion (end-of-line) (point))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2142 hidden (and selective-display
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2143 (save-excursion (search-forward "\r" eol t))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2144 (if hidden
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2145 nil
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2146 (save-excursion ;; Find out what kind of file this is:
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2147 ;; Restrict perm bits to be non-blank,
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2148 ;; otherwise this matches one char to early (looking backward):
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2149 ;; "l---------" (some systems make symlinks that way)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2150 ;; "----------" (plain file with zero perms)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2151 (if (re-search-backward
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2152 dired-permission-flags-regexp nil t)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2153 (setq file-type (char-after (match-beginning 1))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2154 symlink (eq file-type ?l)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2155 ;; Only with -F we need to know whether it's an executable
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2156 executable (and
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2157 used-F
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2158 (string-match
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2159 "[xst]" ;; execute bit set anywhere?
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2160 (concat
54577
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
2161 (match-string 2)
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
2162 (match-string 3)
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
2163 (match-string 4)))))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2164 (or no-error (error "No file on this line"))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2165 ;; Move point to end of name:
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2166 (if symlink
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
2167 (if (search-forward " -> " eol t)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2168 (progn
57264
fc40eb786614 (dired-view-command-alist): Use more efficient regexps. Remove dubious args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57228
diff changeset
2169 (forward-char -4)
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2170 (and used-F
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2171 dired-ls-F-marks-symlinks
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2172 (eq (preceding-char) ?@) ;; did ls really mark the link?
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2173 (forward-char -1))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2174 (goto-char eol) ;; else not a symbolic link
65027
966abb81fa37 (dired-move-to-end-of-filename):
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64961
diff changeset
2175 ;; ls -lF marks dirs, sockets, fifos and executables with exactly
966abb81fa37 (dired-move-to-end-of-filename):
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64961
diff changeset
2176 ;; one trailing character. (Executable bits on symlinks ain't mean
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2177 ;; a thing, even to ls, but we know it's not a symlink.)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2178 (and used-F
65027
966abb81fa37 (dired-move-to-end-of-filename):
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64961
diff changeset
2179 (or (memq file-type '(?d ?s ?p))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2180 executable)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2181 (forward-char -1))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2182 (or no-error
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2183 (not (eq opoint (point)))
87139
f358a2fd5895 Fix buggy calls to `error'.
Deepak Goel <deego@gnufans.org>
parents: 86356
diff changeset
2184 (error "%s" (if hidden
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2185 (substitute-command-keys
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2186 "File line is hidden, type \\[dired-hide-subdir] to unhide")
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2187 "No file on this line")))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2188 (if (eq opoint (point))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2189 nil
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
2190 (point)))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2191
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2192
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2193 ;;; COPY NAMES OF MARKED FILES INTO KILL-RING.
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2194
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2195 (defun dired-copy-filename-as-kill (&optional arg)
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2196 "Copy names of marked (or next ARG) files into the kill ring.
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2197 The names are separated by a space.
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
2198 With a zero prefix arg, use the absolute file name of each marked file.
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
2199 With \\[universal-argument], use the file name relative to the dired buffer's
61296
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2200 `default-directory'. (This still may contain slashes if in a subdirectory.)
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2201
61296
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2202 If on a subdir headerline, use absolute subdirname instead;
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2203 prefix arg and marked files are ignored in this case.
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2204
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2205 You can then feed the file name(s) to other commands with \\[yank]."
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2206 (interactive "P")
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2207 (let ((string
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2208 (or (dired-get-subdir)
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2209 (mapconcat (function identity)
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2210 (if arg
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2211 (cond ((zerop (prefix-numeric-value arg))
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2212 (dired-get-marked-files))
61296
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2213 ((consp arg)
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2214 (dired-get-marked-files t))
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2215 (t
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2216 (dired-get-marked-files
8d1c64f52397 (dired-copy-filename-as-kill): Make `-' arg behave like `-1'. Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61023
diff changeset
2217 'no-dir (prefix-numeric-value arg))))
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2218 (dired-get-marked-files 'no-dir))
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2219 " "))))
42594
ec991a12a82f (dired-copy-filename-as-kill): Call kill-append if following a kill command.
Richard M. Stallman <rms@gnu.org>
parents: 42245
diff changeset
2220 (if (eq last-command 'kill-region)
ec991a12a82f (dired-copy-filename-as-kill): Call kill-append if following a kill command.
Richard M. Stallman <rms@gnu.org>
parents: 42245
diff changeset
2221 (kill-append string nil)
ec991a12a82f (dired-copy-filename-as-kill): Call kill-append if following a kill command.
Richard M. Stallman <rms@gnu.org>
parents: 42245
diff changeset
2222 (kill-new string))
42100
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2223 (message "%s" string)))
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2224
eb27208de620 (dired-copy-filename-as-kill): Moved from dired-x.el.
Richard M. Stallman <rms@gnu.org>
parents: 41608
diff changeset
2225
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2226 ;; Keeping Dired buffers in sync with the filesystem and with each other
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2227
17206
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2228 (defun dired-buffers-for-dir (dir &optional file)
109333
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2229 ;; Return a list of buffers for DIR (top level or in-situ subdir).
17206
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2230 ;; If FILE is non-nil, include only those whose wildcard pattern (if any)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2231 ;; matches FILE.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2232 ;; The list is in reverse order of buffer creation, most recent last.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2233 ;; As a side effect, killed dired buffers for DIR are removed from
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2234 ;; dired-buffers.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2235 (setq dir (file-name-as-directory dir))
109333
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2236 (let (result buf)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2237 (dolist (elt dired-buffers)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2238 (setq buf (cdr elt))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2239 (cond
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2240 ((null (buffer-name buf))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2241 ;; Buffer is killed - clean up:
8791
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2242 (setq dired-buffers (delq elt dired-buffers)))
109333
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2243 ((dired-in-this-tree dir (car elt))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2244 (with-current-buffer buf
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2245 (and (assoc dir dired-subdir-alist)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2246 (or (null file)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2247 (if (stringp dired-directory)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2248 (let ((wildcards (file-name-nondirectory
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2249 dired-directory)))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2250 (or (= 0 (length wildcards))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2251 (string-match (dired-glob-regexp wildcards)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2252 file)))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2253 (member (expand-file-name file dir)
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2254 (cdr dired-directory))))
a13166a76062 * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).
Chong Yidong <cyd@stupidchicken.com>
parents: 107085
diff changeset
2255 (setq result (cons buf result)))))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2256 result))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2257
17206
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2258 (defun dired-glob-regexp (pattern)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2259 "Convert glob-pattern PATTERN to a regular expression."
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2260 (let ((matched-in-pattern 0) ;; How many chars of PATTERN we've handled.
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2261 regexp)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2262 (while (string-match "[[?*]" pattern matched-in-pattern)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2263 (let ((op-end (match-end 0))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2264 (next-op (aref pattern (match-beginning 0))))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2265 (setq regexp (concat regexp
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2266 (regexp-quote
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2267 (substring pattern matched-in-pattern
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2268 (match-beginning 0)))))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2269 (cond ((= next-op ??)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2270 (setq regexp (concat regexp "."))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2271 (setq matched-in-pattern op-end))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2272 ((= next-op ?\[)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2273 ;; Fails to handle ^ yet ????
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2274 (let* ((set-start (match-beginning 0))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2275 (set-cont
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2276 (if (= (aref pattern (1+ set-start)) ?^)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2277 (+ 3 set-start)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2278 (+ 2 set-start)))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2279 (set-end (string-match "]" pattern set-cont))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2280 (set (substring pattern set-start (1+ set-end))))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2281 (setq regexp (concat regexp set))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2282 (setq matched-in-pattern (1+ set-end))))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2283 ((= next-op ?*)
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2284 (setq regexp (concat regexp ".*"))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2285 (setq matched-in-pattern op-end)))))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2286 (concat "\\`"
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2287 regexp
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2288 (regexp-quote
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2289 (substring pattern matched-in-pattern))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2290 "\\'")))
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2291
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
2292
17206
30a9faea2a54 (dired-glob-regexp): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17198
diff changeset
2293
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2294 (defun dired-advertise ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2295 ;;"Advertise in variable `dired-buffers' that we dired `default-directory'."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2296 ;; With wildcards we actually advertise too much.
8791
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2297 (let ((expanded-default (expand-file-name default-directory)))
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2298 (if (memq (current-buffer) (dired-buffers-for-dir expanded-default))
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2299 t ; we have already advertised ourselves
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2300 (setq dired-buffers
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2301 (cons (cons expanded-default (current-buffer))
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2302 dired-buffers)))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2303
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2304 (defun dired-unadvertise (dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2305 ;; Remove DIR from the buffer alist in variable dired-buffers.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2306 ;; This has the effect of removing any buffer whose main directory is DIR.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2307 ;; It does not affect buffers in which DIR is a subdir.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2308 ;; Removing is also done as a side-effect in dired-buffer-for-dir.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2309 (setq dired-buffers
8791
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2310 (delq (assoc (expand-file-name dir) dired-buffers) dired-buffers)))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2311
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2312 ;; Tree Dired
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2313
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2314 ;;; utility functions
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2315
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2316 (defun dired-in-this-tree (file dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2317 ;;"Is FILE part of the directory tree starting at DIR?"
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2318 (let (case-fold-search)
8791
555762c754a6 (dired-buffers-for-dir): Assume dirs are preexpanded.
Richard M. Stallman <rms@gnu.org>
parents: 8438
diff changeset
2319 (string-match (concat "^" (regexp-quote dir)) file)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2320
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2321 (defun dired-normalize-subdir (dir)
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
2322 ;; Prepend default-directory to DIR if relative file name.
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
2323 ;; dired-get-filename must be able to make a valid file name from a
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2324 ;; file and its directory DIR.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2325 (file-name-as-directory
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2326 (if (file-name-absolute-p dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2327 dir
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2328 (expand-file-name dir default-directory))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2329
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2330 (defun dired-get-subdir ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2331 ;;"Return the subdir name on this line, or nil if not on a headerline."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2332 ;; Look up in the alist whether this is a headerline.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2333 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2334 (let ((cur-dir (dired-current-directory)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2335 (beginning-of-line) ; alist stores b-o-l positions
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2336 (and (zerop (- (point)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2337 (dired-get-subdir-min (assoc cur-dir
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2338 dired-subdir-alist))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2339 cur-dir))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2340
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2341 ;(defun dired-get-subdir-min (elt)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2342 ; (cdr elt))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2343 ;; can't use macro, must be redefinable for other alist format in dired-nstd.
2584
55e18ce6e98a Changed fsets to defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2492
diff changeset
2344 (defalias 'dired-get-subdir-min 'cdr)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2345
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2346 (defun dired-get-subdir-max (elt)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2347 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2348 (goto-char (dired-get-subdir-min elt))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2349 (dired-subdir-max)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2350
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2351 (defun dired-clear-alist ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2352 (while dired-subdir-alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2353 (set-marker (dired-get-subdir-min (car dired-subdir-alist)) nil)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2354 (setq dired-subdir-alist (cdr dired-subdir-alist))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2355
1091
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2356 (defun dired-subdir-index (dir)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2357 ;; Return an index into alist for use with nth
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2358 ;; for the sake of subdir moving commands.
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2359 (let (found (index 0) (alist dired-subdir-alist))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2360 (while alist
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2361 (if (string= dir (car (car alist)))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2362 (setq alist nil found t)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2363 (setq alist (cdr alist) index (1+ index))))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2364 (if found index nil)))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2365
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2366 (defun dired-next-subdir (arg &optional no-error-if-not-found no-skip)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2367 "Go to next subdirectory, regardless of level."
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2368 ;; Use 0 arg to go to this directory's header line.
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2369 ;; NO-SKIP prevents moving to end of header line, returning whatever
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2370 ;; position was found in dired-subdir-alist.
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2371 (interactive "p")
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2372 (let ((this-dir (dired-current-directory))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2373 pos index)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2374 ;; nth with negative arg does not return nil but the first element
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2375 (setq index (- (dired-subdir-index this-dir) arg))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2376 (setq pos (if (>= index 0)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2377 (dired-get-subdir-min (nth index dired-subdir-alist))))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2378 (if pos
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2379 (progn
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2380 (goto-char pos)
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2381 (or no-skip (skip-chars-forward "^\n\r"))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2382 (point))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2383 (if no-error-if-not-found
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2384 nil ; return nil if not found
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2385 (error "%s directory" (if (> arg 0) "Last" "First"))))))
3302f6e93ce5 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 910
diff changeset
2386
39376
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2387 (defun dired-build-subdir-alist (&optional switches)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2388 "Build `dired-subdir-alist' by parsing the buffer.
39376
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2389 Returns the new value of the alist.
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2390 If optional arg SWITCHES is non-nil, use its value
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2391 instead of `dired-actual-switches'."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2392 (interactive)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2393 (dired-clear-alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2394 (save-excursion
39376
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2395 (let* ((count 0)
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2396 (inhibit-read-only t)
60097
031a5ac39eb7 (dired-build-subdir-alist): Bind buffer-undo-list to t.
Richard M. Stallman <rms@gnu.org>
parents: 59996
diff changeset
2397 (buffer-undo-list t)
39376
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2398 (switches (or switches dired-actual-switches))
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2399 new-dir-name
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2400 (R-ftp-base-dir-regex
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2401 ;; Used to expand subdirectory names correctly in recursive
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2402 ;; ange-ftp listings.
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2403 (and (string-match "R" switches)
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2404 (string-match "\\`/.*:\\(/.*\\)" default-directory)
7e0db9f5d524 (dired-build-subdir-alist): Accept optional arg SWITCHES.
Eli Zaretskii <eliz@gnu.org>
parents: 39325
diff changeset
2405 (concat "\\`" (match-string 1 default-directory)))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2406 (goto-char (point-min))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2407 (setq dired-subdir-alist nil)
73099
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2408 (while (re-search-forward dired-subdir-regexp nil t)
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2409 ;; Avoid taking a file name ending in a colon
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2410 ;; as a subdir name.
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2411 (unless (save-excursion
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2412 (goto-char (match-beginning 0))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2413 (beginning-of-line)
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2414 (forward-char 2)
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2415 (save-match-data (looking-at dired-re-perms)))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2416 (save-excursion
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2417 (goto-char (match-beginning 1))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2418 (setq new-dir-name
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2419 (buffer-substring-no-properties (point) (match-end 1))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2420 new-dir-name
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2421 (save-match-data
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2422 (if (and R-ftp-base-dir-regex
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2423 (not (string= new-dir-name default-directory))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2424 (string-match R-ftp-base-dir-regex new-dir-name))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2425 (concat default-directory
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2426 (substring new-dir-name (match-end 0)))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2427 (expand-file-name new-dir-name))))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2428 (delete-region (point) (match-end 1))
73211
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2429 (insert new-dir-name))
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2430 (setq count (1+ count))
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2431 (dired-alist-add-1 new-dir-name
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2432 ;; Place a sub directory boundary between lines.
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2433 (save-excursion
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2434 (goto-char (match-beginning 0))
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2435 (beginning-of-line)
dae82b8b0355 (dired-build-subdir-alist): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 73099
diff changeset
2436 (point-marker)))))
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 105346
diff changeset
2437 (if (and (> count 1) (called-interactively-p 'interactive))
73099
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2438 (message "Buffer includes %d directories" count)))
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2439 ;; We don't need to sort it because it is in buffer order per
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2440 ;; constructionem. Return new alist:
59243837a57a (dired-build-subdir-alist): When file ends in colon,
Richard M. Stallman <rms@gnu.org>
parents: 72716
diff changeset
2441 dired-subdir-alist))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2442
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2443 (defun dired-alist-add-1 (dir new-marker)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2444 ;; Add new DIR at NEW-MARKER. Don't sort.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2445 (setq dired-subdir-alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2446 (cons (cons (dired-normalize-subdir dir) new-marker)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2447 dired-subdir-alist)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2448
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2449 (defun dired-goto-next-nontrivial-file ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2450 ;; Position point on first nontrivial file after point.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2451 (dired-goto-next-file);; so there is a file to compare with
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2452 (if (stringp dired-trivial-filenames)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2453 (while (and (not (eobp))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2454 (string-match dired-trivial-filenames
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2455 (file-name-nondirectory
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2456 (or (dired-get-filename nil t) ""))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2457 (forward-line 1)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2458 (dired-move-to-filename))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2459
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2460 (defun dired-goto-next-file ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2461 (let ((max (1- (dired-subdir-max))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2462 (while (and (not (dired-move-to-filename)) (< (point) max))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2463 (forward-line 1))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2464
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2465 (defun dired-goto-file (file)
70802
e1bfa36494e2 (dired-mode-map): Put dired-goto-file on j, not M-g.
Richard M. Stallman <rms@gnu.org>
parents: 69783
diff changeset
2466 "Go to line describing file FILE in this dired buffer."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2467 ;; Return value of point on success, else nil.
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 49138
diff changeset
2468 ;; FILE must be an absolute file name.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2469 ;; Loses if FILE contains control chars like "\007" for which ls
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2470 ;; either inserts "?" or "\\007" into the buffer, so we won't find
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2471 ;; it in the buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2472 (interactive
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2473 (prog1 ; let push-mark display its message
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2474 (list (expand-file-name
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2475 (read-file-name "Goto file: "
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2476 (dired-current-directory))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2477 (push-mark)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2478 (setq file (directory-file-name file)) ; does no harm if no directory
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2479 (let (found case-fold-search dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2480 (setq dir (or (file-name-directory file)
48986
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2481 (error "File name `%s' is not absolute" file)))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2482 (save-excursion
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2483 ;; The hair here is to get the result of dired-goto-subdir
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2484 ;; without really calling it if we don't have any subdirs.
5299
883c241eed1b (dired-in-this-tree): Call expand-file-name.
Richard M. Stallman <rms@gnu.org>
parents: 5115
diff changeset
2485 (if (if (string= dir (expand-file-name default-directory))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2486 (goto-char (point-min))
1170
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
2487 (and (cdr dired-subdir-alist)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2488 (dired-goto-subdir dir)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2489 (let ((base (file-name-nondirectory file))
48986
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2490 search-string
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2491 (boundary (dired-subdir-max)))
48986
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2492 (setq search-string
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2493 (replace-regexp-in-string "\^m" "\\^m" base nil t))
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2494 (setq search-string
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2495 (replace-regexp-in-string "\\\\" "\\\\" search-string nil t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2496 (while (and (not found)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2497 ;; filenames are preceded by SPC, this makes
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2498 ;; the search faster (e.g. for the filename "-"!).
48986
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2499 (search-forward (concat " " search-string)
5f0ef23b7e51 (dired-goto-file): Handle \ and ^M quoted by backslash. Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 48903
diff changeset
2500 boundary 'move))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2501 ;; Match could have BASE just as initial substring or
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2502 ;; or in permission bits or date or
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2503 ;; not be a proper filename at all:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2504 (if (equal base (dired-get-filename 'no-dir t))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2505 ;; Must move to filename since an (actually
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2506 ;; correct) match could have been elsewhere on the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2507 ;; ;; line (e.g. "-" would match somewhere in the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2508 ;; permission bits).
5115
da6f8aa6c0aa (dired-goto-file): Don't try matching one line twice.
Richard M. Stallman <rms@gnu.org>
parents: 5113
diff changeset
2509 (setq found (dired-move-to-filename))
da6f8aa6c0aa (dired-goto-file): Don't try matching one line twice.
Richard M. Stallman <rms@gnu.org>
parents: 5113
diff changeset
2510 ;; If this isn't the right line, move forward to avoid
da6f8aa6c0aa (dired-goto-file): Don't try matching one line twice.
Richard M. Stallman <rms@gnu.org>
parents: 5113
diff changeset
2511 ;; trying this line again.
da6f8aa6c0aa (dired-goto-file): Don't try matching one line twice.
Richard M. Stallman <rms@gnu.org>
parents: 5113
diff changeset
2512 (forward-line 1))))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2513 (and found
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2514 ;; return value of point (i.e., FOUND):
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2515 (goto-char found))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2516
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2517 (defun dired-initial-position (dirname)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2518 ;; Where point should go in a new listing of DIRNAME.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2519 ;; Point assumed at beginning of new subdir line.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2520 ;; You may redefine this function as you wish, e.g. like in dired-x.el.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2521 (end-of-line)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2522 (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2523
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2524 ;; These are hooks which make tree dired work.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2525 ;; They are in this file because other parts of dired need to call them.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2526 ;; But they don't call the rest of tree dired unless there are subdirs loaded.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2527
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2528 ;; This function is called for each retrieved filename.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2529 ;; It could stand to be faster, though it's mostly function call
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2530 ;; overhead. Avoiding the function call seems to save about 10% in
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2531 ;; dired-get-filename. Make it a defsubst?
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2532 (defun dired-current-directory (&optional localp)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2533 "Return the name of the subdirectory to which this line belongs.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2534 This returns a string with trailing slash, like `default-directory'.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2535 Optional argument means return a file name relative to `default-directory'."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2536 (let ((here (point))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2537 (alist (or dired-subdir-alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2538 ;; probably because called in a non-dired buffer
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2539 (error "No subdir-alist in %s" (current-buffer))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2540 elt dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2541 (while alist
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2542 (setq elt (car alist)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2543 dir (car elt)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2544 ;; use `<=' (not `<') as subdir line is part of subdir
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2545 alist (if (<= (dired-get-subdir-min elt) here)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2546 nil ; found
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2547 (cdr alist))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2548 (if localp
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2549 (dired-make-relative dir default-directory)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2550 dir)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2551
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2552 ;; Subdirs start at the beginning of their header lines and end just
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2553 ;; before the beginning of the next header line (or end of buffer).
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2554
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2555 (defun dired-subdir-max ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2556 (save-excursion
1170
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
2557 (if (or (null (cdr dired-subdir-alist)) (not (dired-next-subdir 1 t t)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2558 (point-max)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2559 (point))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2560
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2561 ;; Deleting files
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2562
77984
b4683039515d (dired-recursive-deletes, dired-recursive-copies): Change default to
Chong Yidong <cyd@stupidchicken.com>
parents: 77982
diff changeset
2563 (defcustom dired-recursive-deletes 'top
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
2564 "Decide whether recursive deletes are allowed.
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
2565 A value of nil means no recursive deletes.
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2566 `always' means delete recursively without asking. This is DANGEROUS!
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2567 `top' means ask for each directory at top level, but delete its subdirectories
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2568 without asking.
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2569 Anything else means ask for each directory."
49068
a6b76c097634 (dired-recursive-deletes): Fix custom type.
Richard M. Stallman <rms@gnu.org>
parents: 48986
diff changeset
2570 :type '(choice :tag "Delete non-empty directories"
a6b76c097634 (dired-recursive-deletes): Fix custom type.
Richard M. Stallman <rms@gnu.org>
parents: 48986
diff changeset
2571 (const :tag "Yes" always)
a6b76c097634 (dired-recursive-deletes): Fix custom type.
Richard M. Stallman <rms@gnu.org>
parents: 48986
diff changeset
2572 (const :tag "No--only delete empty directories" nil)
a6b76c097634 (dired-recursive-deletes): Fix custom type.
Richard M. Stallman <rms@gnu.org>
parents: 48986
diff changeset
2573 (const :tag "Confirm for each directory" t)
a6b76c097634 (dired-recursive-deletes): Fix custom type.
Richard M. Stallman <rms@gnu.org>
parents: 48986
diff changeset
2574 (const :tag "Confirm for each top directory only" top))
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2575 :group 'dired)
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2576
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
2577 ;; Match anything but `.' and `..'.
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2578 (defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2579
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2580 ;; Delete file, possibly delete a directory and all its files.
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2581 ;; This function is usefull outside of dired. One could change it's name
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2582 ;; to e.g. recursive-delete-file and put it somewhere else.
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2583 (defun dired-delete-file (file &optional recursive trash) "\
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2584 Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2585 RECURSIVE determines what to do with a non-empty directory. If RECURSIVE is:
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
2586 nil, do not delete.
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2587 `always', delete recursively without asking.
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2588 `top', ask for each directory at top level.
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2589 Anything else, ask for each sub-directory."
105346
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2590 ;; This test is equivalent to
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2591 ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2592 ;; but more efficient
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2593 (if (not (eq t (car (file-attributes file))))
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2594 (delete-file file trash)
105346
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2595 (if (and recursive
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2596 (directory-files file t dired-re-no-dot) ; Not empty.
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2597 (or (eq recursive 'always)
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2598 (yes-or-no-p (format "Recursively %s %s? "
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2599 (if (and trash
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2600 delete-by-moving-to-trash)
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2601 "trash"
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2602 "delete")
105346
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2603 (dired-make-relative file)))))
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2604 (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask again.
105346
57afd13b64b9 *** empty log message ***
Michael Albinus <michael.albinus@gmx.de>
parents: 105196
diff changeset
2605 (setq recursive nil))
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2606 (delete-directory file recursive trash)))
25731
62a49653ef38 (dired-recursive-deletes): New custom variable.
Richard M. Stallman <rms@gnu.org>
parents: 25558
diff changeset
2607
12736
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
2608 (defun dired-do-flagged-delete (&optional nomessage)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
2609 "In Dired, delete the files flagged for deletion.
12736
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
2610 If NOMESSAGE is non-nil, we don't display any message
77841
d582a9f8e632 (dired-do-delete, dired-do-flagged-delete): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 77709
diff changeset
2611 if there are no flagged files.
82195
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
2612 `dired-recursive-deletes' controls whether deletion of
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
2613 non-empty directories is allowed."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2614 (interactive)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2615 (let* ((dired-marker-char dired-del-marker)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2616 (regexp (dired-marker-regexp))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2617 case-fold-search)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2618 (if (save-excursion (goto-char (point-min))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2619 (re-search-forward regexp nil t))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2620 (dired-internal-do-deletions
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2621 ;; this can't move point since ARG is nil
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2622 (dired-map-over-marks (cons (dired-get-filename) (point))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2623 nil)
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2624 nil t)
12736
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
2625 (or nomessage
a7253dcf5f9d (dired-insert-set-properties): Catch errors.
Richard M. Stallman <rms@gnu.org>
parents: 12211
diff changeset
2626 (message "(No deletions requested)")))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2627
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2628 (defun dired-do-delete (&optional arg)
77841
d582a9f8e632 (dired-do-delete, dired-do-flagged-delete): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 77709
diff changeset
2629 "Delete all marked (or next ARG) files.
82195
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
2630 `dired-recursive-deletes' controls whether deletion of
69abb81564e4 (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
Juri Linkov <juri@jurta.org>
parents: 82140
diff changeset
2631 non-empty directories is allowed."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2632 ;; This is more consistent with the file marking feature than
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2633 ;; dired-do-flagged-delete.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2634 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2635 (dired-internal-do-deletions
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2636 ;; this may move point if ARG is an integer
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2637 (dired-map-over-marks (cons (dired-get-filename) (point))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2638 arg)
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2639 arg t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2640
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2641 (defvar dired-deletion-confirmer 'yes-or-no-p) ; or y-or-n-p?
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2642
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2643 (defun dired-internal-do-deletions (l arg &optional trash)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2644 ;; L is an alist of files to delete, with their buffer positions.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2645 ;; ARG is the prefix arg.
97142
c3512b2085a0 * bitmaps/README:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97088
diff changeset
2646 ;; Filenames are absolute.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2647 ;; (car L) *must* be the *last* (bottommost) file in the dired buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2648 ;; That way as changes are made in the buffer they do not shift the
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2649 ;; lines still to be changed, so the (point) values in L stay valid.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2650 ;; Also, for subdirs in natural order, a subdir's files are deleted
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2651 ;; before the subdir itself - the other way around would not work.
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2652 (let* ((files (mapcar (function car) l))
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2653 (count (length l))
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2654 (succ 0)
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2655 (trashing (and trash delete-by-moving-to-trash))
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2656 (progress-reporter
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2657 (make-progress-reporter
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2658 (if trashing "Trashing..." "Deleting...")
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2659 succ count)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2660 ;; canonicalize file list for pop up
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2661 (setq files (nreverse (mapcar (function dired-make-relative) files)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2662 (if (dired-mark-pop-up
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2663 " *Deletions*" 'delete files dired-deletion-confirmer
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2664 (format "%s %s "
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2665 (if trashing "Trash" "Delete")
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2666 (dired-mark-prompt arg files)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2667 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2668 (let (failures);; files better be in reverse order for this loop!
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2669 (while l
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2670 (goto-char (cdr (car l)))
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2671 (let ((inhibit-read-only t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2672 (condition-case err
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2673 (let ((fn (car (car l))))
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2674 (dired-delete-file fn dired-recursive-deletes trash)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2675 ;; if we get here, removing worked
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2676 (setq succ (1+ succ))
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2677 (progress-reporter-update progress-reporter succ)
43903
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2678 (dired-fun-in-all-buffers
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2679 (file-name-directory fn) (file-name-nondirectory fn)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2680 (function dired-delete-entry) fn))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2681 (error;; catch errors from failed deletions
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2682 (dired-log "%s\n" err)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2683 (setq failures (cons (car (car l)) failures)))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2684 (setq l (cdr l)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2685 (if (not failures)
108806
511da81b16c5 Change delete-by-moving-to-trash so Lisp calls explicitly request trashing.
Chong Yidong <cyd@stupidchicken.com>
parents: 108780
diff changeset
2686 (progress-reporter-done progress-reporter)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2687 (dired-log-summary
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2688 (format "%d of %d deletion%s failed"
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2689 (length failures) count
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2690 (dired-plural-s count))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2691 failures))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2692 (message "(No deletions performed)")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2693 (dired-move-to-filename))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2694
43903
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2695 (defun dired-fun-in-all-buffers (directory file fun &rest args)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2696 ;; In all buffers dired'ing DIRECTORY, run FUN with ARGS.
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2697 ;; If the buffer has a wildcard pattern, check that it matches FILE.
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2698 ;; (FILE does not include a directory component.)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2699 ;; FILE may be nil, in which case ignore it.
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2700 ;; Return list of buffers where FUN succeeded (i.e., returned non-nil).
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2701 (let (success-list)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2702 (dolist (buf (dired-buffers-for-dir (expand-file-name directory)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2703 file))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2704 (with-current-buffer buf
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2705 (if (apply fun args)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2706 (setq success-list (cons (buffer-name buf) success-list)))))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2707 success-list))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2708
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
2709 ;; Delete the entry for FILE from
43903
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2710 (defun dired-delete-entry (file)
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2711 (save-excursion
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2712 (and (dired-goto-file file)
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2713 (let ((inhibit-read-only t))
43903
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2714 (delete-region (progn (beginning-of-line) (point))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2715 (save-excursion (forward-line 1) (point))))))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2716 (dired-clean-up-after-deletion file))
9978ea345d85 (dired-readin): Clear out undo list.
Richard M. Stallman <rms@gnu.org>
parents: 43131
diff changeset
2717
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2718 ;; This is a separate function for the sake of dired-x.el.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2719 (defun dired-clean-up-after-deletion (fn)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2720 ;; Clean up after a deleted file or directory FN.
1170
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
2721 (save-excursion (and (cdr dired-subdir-alist)
54a44b2b9591 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 1130
diff changeset
2722 (dired-goto-subdir fn)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2723 (dired-kill-subdir))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2724
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2725 ;; Confirmation
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2726
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2727 (defun dired-marker-regexp ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2728 (concat "^" (regexp-quote (char-to-string dired-marker-char))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2729
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2730 (defun dired-plural-s (count)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2731 (if (= 1 count) "" "s"))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2732
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2733 (defun dired-mark-prompt (arg files)
80177
8de8dd7c8cb4 (dired-mark-prompt): Don't count/display the t element.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
2734 "Return a string for use in a prompt, either the current file
8de8dd7c8cb4 (dired-mark-prompt): Don't count/display the t element.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
2735 name, or the marker and a count of marked files."
8de8dd7c8cb4 (dired-mark-prompt): Don't count/display the t element.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
2736 ;; distinguish-one-marked can cause the first element to be just t.
8de8dd7c8cb4 (dired-mark-prompt): Don't count/display the t element.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
2737 (if (eq (car files) t) (setq files (cdr files)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2738 (let ((count (length files)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2739 (if (= count 1)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2740 (car files)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2741 ;; more than 1 file:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2742 (if (integerp arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2743 ;; abs(arg) = count
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2744 ;; Perhaps this is nicer, but it also takes more screen space:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2745 ;;(format "[%s %d files]" (if (> arg 0) "next" "previous")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2746 ;; count)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2747 (format "[next %d files]" arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2748 (format "%c [%d files]" dired-marker-char count)))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2749
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2750 (defun dired-pop-to-buffer (buf)
100939
09ea3896dab5 (dired-pop-to-buffer): Don't split windows horizontally. (Bug#1806)
Martin Rudalics <rudalics@gmx.at>
parents: 100908
diff changeset
2751 "Pop up buffer BUF in a way suitable for Dired."
103233
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2752 (let ((split-window-preferred-function
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2753 (lambda (window)
103234
5f8eb7ae3135 (dired-pop-to-buffer): Fix last fix.
Martin Rudalics <rudalics@gmx.at>
parents: 103233
diff changeset
2754 (or (and (let ((split-height-threshold 0))
5f8eb7ae3135 (dired-pop-to-buffer): Fix last fix.
Martin Rudalics <rudalics@gmx.at>
parents: 103233
diff changeset
2755 (window-splittable-p (selected-window)))
103233
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2756 ;; Try to split the selected window vertically if
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2757 ;; that's possible. (Bug#1806)
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2758 (split-window-vertically))
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2759 ;; Otherwise, try to split WINDOW sensibly.
8cc53b11f921 (dired-pop-to-buffer): Try to make this behave the
Martin Rudalics <rudalics@gmx.at>
parents: 102825
diff changeset
2760 (split-window-sensibly window)))))
100939
09ea3896dab5 (dired-pop-to-buffer): Don't split windows horizontally. (Bug#1806)
Martin Rudalics <rudalics@gmx.at>
parents: 100908
diff changeset
2761 (pop-to-buffer (get-buffer-create buf)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2762 ;; If dired-shrink-to-fit is t, make its window fit its contents.
100352
6c39d6f94891 (dired-pop-to-buffer): Use fit-window-to-buffer when
Martin Rudalics <rudalics@gmx.at>
parents: 100241
diff changeset
2763 (when dired-shrink-to-fit
100362
4150ab3a5845 (dired-pop-to-buffer): Call with min-height arg 1 to
Martin Rudalics <rudalics@gmx.at>
parents: 100352
diff changeset
2764 ;; Try to not delete window when we want to display less than
4150ab3a5845 (dired-pop-to-buffer): Call with min-height arg 1 to
Martin Rudalics <rudalics@gmx.at>
parents: 100352
diff changeset
2765 ;; `window-min-height' lines.
4150ab3a5845 (dired-pop-to-buffer): Call with min-height arg 1 to
Martin Rudalics <rudalics@gmx.at>
parents: 100352
diff changeset
2766 (fit-window-to-buffer (get-buffer-window buf) nil 1)))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2767
68267
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
2768 (defcustom dired-no-confirm nil
109488
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2769 "A list of symbols for commands Dired should not confirm, or t.
17198
471ce207330c Doc dired-no-confirm and allow t value.
Simon Marshall <simon@gnu.org>
parents: 17079
diff changeset
2770 Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress',
54663
9b0161392fe1 Add autoload for `dired-do-touch'.
Juri Linkov <juri@jurta.org>
parents: 54661
diff changeset
2771 `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink',
109488
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2772 `touch' and `uncompress'.
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2773 If t, confirmation is never needed."
68267
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
2774 :group 'dired
109488
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2775 :type '(choice (const :tag "Confirmation never needed" t)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2776 (set (const byte-compile) (const chgrp)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2777 (const chmod) (const chown) (const compress)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2778 (const copy) (const delete) (const hardlink)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2779 (const load) (const move) (const print)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2780 (const shell) (const symlink) (const touch)
ced3f5ab1023 * dired.el (dired-no-confirm): Document value t and fix defcustom (bug#6597).
Juanma Barranquero <lekktu@gmail.com>
parents: 109487
diff changeset
2781 (const uncompress))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2782
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2783 (defun dired-mark-pop-up (bufname op-symbol files function &rest args)
47544
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2784 "Return FUNCTION's result on ARGS after showing which files are marked.
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2785 Displays the file names in a buffer named BUFNAME;
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2786 nil gives \" *Marked Files*\".
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2787 This uses function `dired-pop-to-buffer' to do that.
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2788
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2789 FUNCTION should not manipulate files, just read input
55087a54b990 (dired-mark-pop-up): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47521
diff changeset
2790 (an argument or confirmation).
32149
504f15a7d36d (dired-mark-pop-up): Turn comment into docstring. Use with-current-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 32027
diff changeset
2791 The window is not shown if there is just one file or
504f15a7d36d (dired-mark-pop-up): Turn comment into docstring. Use with-current-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 32027
diff changeset
2792 OP-SYMBOL is a member of the list in `dired-no-confirm'.
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2793 FILES is the list of marked files. It can also be (t FILENAME)
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2794 in the case of one marked file, to distinguish that from using
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2795 just the current file."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2796 (or bufname (setq bufname " *Marked Files*"))
17198
471ce207330c Doc dired-no-confirm and allow t value.
Simon Marshall <simon@gnu.org>
parents: 17079
diff changeset
2797 (if (or (eq dired-no-confirm t)
471ce207330c Doc dired-no-confirm and allow t value.
Simon Marshall <simon@gnu.org>
parents: 17079
diff changeset
2798 (memq op-symbol dired-no-confirm)
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2799 ;; If FILES defaulted to the current line's file.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2800 (= (length files) 1))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2801 (apply function args)
32149
504f15a7d36d (dired-mark-pop-up): Turn comment into docstring. Use with-current-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 32027
diff changeset
2802 (with-current-buffer (get-buffer-create bufname)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2803 (erase-buffer)
62373
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2804 ;; Handle (t FILE) just like (FILE), here.
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2805 ;; That value is used (only in some cases), to mean
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2806 ;; just one file that was marked, rather than the current line file.
6b68d72075c1 (dired-map-over-marks): New arg distinguish-one-marked.
Richard M. Stallman <rms@gnu.org>
parents: 62298
diff changeset
2807 (dired-format-columns-of-files (if (eq (car files) t) (cdr files) files))
38091
58a77e50831e (dired-mark-pop-up): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 38074
diff changeset
2808 (remove-text-properties (point-min) (point-max)
58a77e50831e (dired-mark-pop-up): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 38074
diff changeset
2809 '(mouse-face nil help-echo nil)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2810 (save-window-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2811 (dired-pop-to-buffer bufname)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2812 (apply function args))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2813
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2814 (defun dired-format-columns-of-files (files)
94562
46f178f2b009 (dired-format-columns-of-files): Use completion--insert-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94559
diff changeset
2815 (let ((beg (point)))
46f178f2b009 (dired-format-columns-of-files): Use completion--insert-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94559
diff changeset
2816 (completion--insert-strings files)
46f178f2b009 (dired-format-columns-of-files): Use completion--insert-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94559
diff changeset
2817 (put-text-property beg (point) 'mouse-face nil)))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2818
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2819 ;; Commands to mark or flag file(s) at or near current line.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2820
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2821 (defun dired-repeat-over-lines (arg function)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2822 ;; This version skips non-file lines.
3737
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2823 (let ((pos (make-marker)))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2824 (beginning-of-line)
3737
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2825 (while (and (> arg 0) (not (eobp)))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2826 (setq arg (1- arg))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2827 (beginning-of-line)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2828 (while (and (not (eobp)) (dired-between-files)) (forward-line 1))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2829 (save-excursion
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2830 (forward-line 1)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2831 (move-marker pos (1+ (point))))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2832 (save-excursion (funcall function))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2833 ;; Advance to the next line--actually, to the line that *was* next.
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2834 ;; (If FUNCTION inserted some new lines in between, skip them.)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2835 (goto-char pos))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2836 (while (and (< arg 0) (not (bobp)))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2837 (setq arg (1+ arg))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2838 (forward-line -1)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2839 (while (and (not (bobp)) (dired-between-files)) (forward-line -1))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2840 (beginning-of-line)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2841 (save-excursion (funcall function)))
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2842 (move-marker pos nil)
8a0b09b3a24c (dired-repeat-over-lines): Going fwd, skip new lines
Richard M. Stallman <rms@gnu.org>
parents: 3633
diff changeset
2843 (dired-move-to-filename)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2844
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2845 (defun dired-between-files ()
53224
f0eb34e60705 tag of miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-137
Karoly Lorentey <lorentey@elte.hu>
parents: 52973
diff changeset
2846 ;; This used to be a regexp match of the `total ...' line output by
f0eb34e60705 tag of miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-137
Karoly Lorentey <lorentey@elte.hu>
parents: 52973
diff changeset
2847 ;; ls, which is slightly faster, but that is not very robust; notably,
f0eb34e60705 tag of miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-137
Karoly Lorentey <lorentey@elte.hu>
parents: 52973
diff changeset
2848 ;; it fails for non-english locales.
f0eb34e60705 tag of miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-137
Karoly Lorentey <lorentey@elte.hu>
parents: 52973
diff changeset
2849 (save-excursion (not (dired-move-to-filename))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2850
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2851 (defun dired-next-marked-file (arg &optional wrap opoint)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2852 "Move to the next marked file, wrapping around the end of the buffer."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2853 (interactive "p\np")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2854 (or opoint (setq opoint (point)));; return to where interactively started
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2855 (if (if (> arg 0)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2856 (re-search-forward dired-re-mark nil t arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2857 (beginning-of-line)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2858 (re-search-backward dired-re-mark nil t (- arg)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2859 (dired-move-to-filename)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2860 (if (null wrap)
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2861 (progn
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2862 (goto-char opoint)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2863 (error "No next marked file"))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2864 (message "(Wraparound for next marked file)")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2865 (goto-char (if (> arg 0) (point-min) (point-max)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2866 (dired-next-marked-file arg nil opoint))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2867
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2868 (defun dired-prev-marked-file (arg &optional wrap)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2869 "Move to the previous marked file, wrapping around the end of the buffer."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2870 (interactive "p\np")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2871 (dired-next-marked-file (- arg) wrap))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2872
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2873 (defun dired-file-marker (file)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2874 ;; Return FILE's marker, or nil if unmarked.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2875 (save-excursion
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2876 (and (dired-goto-file file)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2877 (progn
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2878 (beginning-of-line)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2879 (if (not (equal ?\040 (following-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2880 (following-char))))))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2881
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2882 (defun dired-mark-files-in-region (start end)
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2883 (let ((inhibit-read-only t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2884 (if (> start end)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2885 (error "start > end"))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2886 (goto-char start) ; assumed at beginning of line
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2887 (while (< (point) end)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2888 ;; Skip subdir line and following garbage like the `total' line:
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2889 (while (and (< (point) end) (dired-between-files))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2890 (forward-line 1))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2891 (if (and (not (looking-at dired-re-dot))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2892 (dired-get-filename nil t))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2893 (progn
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2894 (delete-char 1)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2895 (insert dired-marker-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2896 (forward-line 1))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2897
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2898 (defun dired-mark (arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2899 "Mark the current (or next ARG) files.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2900 If on a subdir headerline, mark all its files except `.' and `..'.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2901
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2902 Use \\[dired-unmark-all-files] to remove all marks
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2903 and \\[dired-unmark] on a subdir to remove the marks in
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2904 this subdir."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2905 (interactive "P")
10710
d5d1393a26af (dired-mark): If on dir header line, always mark
Richard M. Stallman <rms@gnu.org>
parents: 10658
diff changeset
2906 (if (dired-get-subdir)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2907 (save-excursion (dired-mark-subdir-files))
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2908 (let ((inhibit-read-only t))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2909 (dired-repeat-over-lines
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
2910 (prefix-numeric-value arg)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2911 (function (lambda () (delete-char 1) (insert dired-marker-char)))))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2912
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2913 (defun dired-unmark (arg)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2914 "Unmark the current (or next ARG) files.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2915 If looking at a subdir, unmark all its files except `.' and `..'."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2916 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2917 (let ((dired-marker-char ?\040))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2918 (dired-mark arg)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2919
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2920 (defun dired-flag-file-deletion (arg)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
2921 "In Dired, flag the current line's file for deletion.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2922 With prefix arg, repeat over several lines.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2923
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2924 If on a subdir headerline, mark all its files except `.' and `..'."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2925 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2926 (let ((dired-marker-char dired-del-marker))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2927 (dired-mark arg)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2928
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2929 (defun dired-unmark-backward (arg)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
2930 "In Dired, move up lines and remove deletion flag there.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2931 Optional prefix ARG says how many lines to unflag; default is one line."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2932 (interactive "p")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2933 (dired-unmark (- arg)))
20991
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2934
44212
e87d819f2887 (dired-toggle-marks): Renamed from dired-do-toggle. Bindings changed.
Richard M. Stallman <rms@gnu.org>
parents: 44061
diff changeset
2935 (defun dired-toggle-marks ()
e87d819f2887 (dired-toggle-marks): Renamed from dired-do-toggle. Bindings changed.
Richard M. Stallman <rms@gnu.org>
parents: 44061
diff changeset
2936 "Toggle marks: marked files become unmarked, and vice versa.
20991
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2937 Files marked with other flags (such as `D') are not affected.
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2938 `.' and `..' are never toggled.
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2939 As always, hidden subdirs are not affected."
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2940 (interactive)
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2941 (save-excursion
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2942 (goto-char (point-min))
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
2943 (let ((inhibit-read-only t))
20991
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2944 (while (not (eobp))
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2945 (or (dired-between-files)
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2946 (looking-at dired-re-dot)
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2947 ;; use subst instead of insdel because it does not move
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2948 ;; the gap and thus should be faster and because
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2949 ;; other characters are left alone automatically
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2950 (apply 'subst-char-in-region
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2951 (point) (1+ (point))
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2952 (if (eq ?\040 (following-char)) ; SPC
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2953 (list ?\040 dired-marker-char)
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2954 (list dired-marker-char ?\040))))
0cd10d49b777 (dired-do-toggle): Moved here from dired-x.el.
Karl Heuer <kwzh@gnu.org>
parents: 20953
diff changeset
2955 (forward-line 1)))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
2956
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2957 ;;; Commands to mark or flag files based on their characteristics or names.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2958
1755
83734c185e01 (dired-regexp-history): New history list.
Richard M. Stallman <rms@gnu.org>
parents: 1672
diff changeset
2959 (defvar dired-regexp-history nil
83734c185e01 (dired-regexp-history): New history list.
Richard M. Stallman <rms@gnu.org>
parents: 1672
diff changeset
2960 "History list of regular expressions used in Dired commands.")
83734c185e01 (dired-regexp-history): New history list.
Richard M. Stallman <rms@gnu.org>
parents: 1672
diff changeset
2961
83734c185e01 (dired-regexp-history): New history list.
Richard M. Stallman <rms@gnu.org>
parents: 1672
diff changeset
2962 (defun dired-read-regexp (prompt)
83734c185e01 (dired-regexp-history): New history list.
Richard M. Stallman <rms@gnu.org>
parents: 1672
diff changeset
2963 (read-from-minibuffer prompt nil nil nil 'dired-regexp-history))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2964
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2965 (defun dired-mark-files-regexp (regexp &optional marker-char)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2966 "Mark all files matching REGEXP for use in later commands.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2967 A prefix argument means to unmark them instead.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2968 `.' and `..' are never marked.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2969
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2970 REGEXP is an Emacs regexp, not a shell wildcard. Thus, use `\\.o$' for
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2971 object files--just `.o' will mark more than you might think."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2972 (interactive
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2973 (list (dired-read-regexp (concat (if current-prefix-arg "Unmark" "Mark")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2974 " files (regexp): "))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2975 (if current-prefix-arg ?\040)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2976 (let ((dired-marker-char (or marker-char dired-marker-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2977 (dired-mark-if
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2978 (and (not (looking-at dired-re-dot))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2979 (not (eolp)) ; empty line
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2980 (let ((fn (dired-get-filename nil t)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2981 (and fn (string-match regexp (file-name-nondirectory fn)))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2982 "matching file")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
2983
22206
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2984 (defun dired-mark-files-containing-regexp (regexp &optional marker-char)
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2985 "Mark all files with contents containing REGEXP for use in later commands.
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2986 A prefix argument means to unmark them instead.
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2987 `.' and `..' are never marked."
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2988 (interactive
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2989 (list (dired-read-regexp (concat (if current-prefix-arg "Unmark" "Mark")
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2990 " files containing (regexp): "))
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2991 (if current-prefix-arg ?\040)))
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2992 (let ((dired-marker-char (or marker-char dired-marker-char)))
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2993 (dired-mark-if
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2994 (and (not (looking-at dired-re-dot))
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2995 (not (eolp)) ; empty line
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
2996 (let ((fn (dired-get-filename nil t)))
23230
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
2997 (when (and fn (file-readable-p fn)
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
2998 (not (file-directory-p fn)))
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
2999 (let ((prebuf (get-file-buffer fn)))
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3000 (message "Checking %s" fn)
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3001 ;; For now we do it inside emacs
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3002 ;; Grep might be better if there are a lot of files
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3003 (if prebuf
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3004 (with-current-buffer prebuf
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3005 (save-excursion
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3006 (goto-char (point-min))
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3007 (re-search-forward regexp nil t)))
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3008 (with-temp-buffer
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3009 (insert-file-contents fn)
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3010 (goto-char (point-min))
6e0d3186be0d (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 23225
diff changeset
3011 (re-search-forward regexp nil t))))
23188
c8b236bbecad (dired-mark-files-containing-regexp):
Karl Heuer <kwzh@gnu.org>
parents: 22856
diff changeset
3012 )))
22206
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
3013 "matching file")))
ebcc36b6b95e (dired-mark-files-containing-regexp): New command.
Richard M. Stallman <rms@gnu.org>
parents: 21956
diff changeset
3014
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3015 (defun dired-flag-files-regexp (regexp)
40950
4bc87462585c Many trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 40818
diff changeset
3016 "In Dired, flag all files containing the specified REGEXP for deletion.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3017 The match is against the non-directory part of the filename. Use `^'
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3018 and `$' to anchor matches. Exclude subdirs by hiding them.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3019 `.' and `..' are never flagged."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3020 (interactive (list (dired-read-regexp "Flag for deletion (regexp): ")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3021 (dired-mark-files-regexp regexp dired-del-marker))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3022
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3023 (defun dired-mark-symlinks (unflag-p)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3024 "Mark all symbolic links.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3025 With prefix argument, unflag all those files."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3026 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3027 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3028 (dired-mark-if (looking-at dired-re-sym) "symbolic link")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3029
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3030 (defun dired-mark-directories (unflag-p)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3031 "Mark all directory file lines except `.' and `..'.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3032 With prefix argument, unflag all those files."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3033 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3034 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3035 (dired-mark-if (and (looking-at dired-re-dir)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3036 (not (looking-at dired-re-dot)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3037 "directory file")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3038
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3039 (defun dired-mark-executables (unflag-p)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3040 "Mark all executable files.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3041 With prefix argument, unflag all those files."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3042 (interactive "P")
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3043 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3044 (dired-mark-if (looking-at dired-re-exe) "executable file")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3045
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3046 ;; dired-x.el has a dired-mark-sexp interactive command: mark
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3047 ;; files for which PREDICATE returns non-nil.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3048
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3049 (defun dired-flag-auto-save-files (&optional unflag-p)
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3050 "Flag for deletion files whose names suggest they are auto save files.
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3051 A prefix argument says to unflag those files instead."
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3052 (interactive "P")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3053 (let ((dired-marker-char (if unflag-p ?\040 dired-del-marker)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3054 (dired-mark-if
3633
47680ad33068 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
3055 ;; It is less than general to check for # here,
3043
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3056 ;; but it's the only way this runs fast enough.
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3057 (and (save-excursion (end-of-line)
3580
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3058 (or
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3059 (eq (preceding-char) ?#)
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3060 ;; Handle executables in case of -F option.
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3061 ;; We need not worry about the other kinds
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3062 ;; of markings that -F makes, since they won't
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3063 ;; appear on real auto-save files.
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3064 (if (eq (preceding-char) ?*)
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3065 (progn
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3066 (forward-char -1)
8223f1bf078f (dired-flag-auto-save-files): Ignore `*' added by ls -F.
Richard M. Stallman <rms@gnu.org>
parents: 3524
diff changeset
3067 (eq (preceding-char) ?#)))))
3043
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3068 (not (looking-at dired-re-dir))
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3069 (let ((fn (dired-get-filename t t)))
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3070 (if fn (auto-save-file-name-p
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3071 (file-name-nondirectory fn)))))
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3072 "auto save file")))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3073
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
3074 (defcustom dired-garbage-files-regexp
54548
f36d3226281c Fix comments.
Juri Linkov <juri@jurta.org>
parents: 54542
diff changeset
3075 ;; `log' here is dubious, since it's typically used for useful log
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
3076 ;; files, not just TeX stuff. -- fx
49138
f955735e16d8 (dired-garbage-files-regexp): Use \\' instead of $ and
Kai Großjohann <kgrossjo@eu.uu.net>
parents: 49094
diff changeset
3077 (concat (regexp-opt
f955735e16d8 (dired-garbage-files-regexp): Use \\' instead of $ and
Kai Großjohann <kgrossjo@eu.uu.net>
parents: 49094
diff changeset
3078 '(".log" ".toc" ".dvi" ".bak" ".orig" ".rej" ".aux"))
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
3079 "\\'")
54533
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
3080 "Regular expression to match \"garbage\" files for `dired-flag-garbage-files'."
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
3081 :type 'regexp
924fccad3acb (dired) <defgroup>: Add link to manual.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54512
diff changeset
3082 :group 'dired)
16825
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
3083
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
3084 (defun dired-flag-garbage-files ()
19780
91cd68461722 (dired-flag-garbage-files): Move interactive flag across doc string.
Richard M. Stallman <rms@gnu.org>
parents: 19736
diff changeset
3085 "Flag for deletion all files that match `dired-garbage-files-regexp'."
16825
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
3086 (interactive)
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
3087 (dired-flag-files-regexp dired-garbage-files-regexp))
9ec806f8bbb7 (dired-garbage-files-regexp): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16824
diff changeset
3088
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3089 (defun dired-flag-backup-files (&optional unflag-p)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3090 "Flag all backup files (names ending with `~') for deletion.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3091 With prefix argument, unflag these files."
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3092 (interactive "P")
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3093 (let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3094 (dired-mark-if
13726
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3095 ;; Don't call backup-file-name-p unless the last character looks like
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3096 ;; it might be the end of a backup file name. This isn't very general,
3043
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3097 ;; but it's the only way this runs fast enough.
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3098 (and (save-excursion (end-of-line)
13726
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3099 ;; Handle executables in case of -F option.
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3100 ;; We need not worry about the other kinds
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3101 ;; of markings that -F makes, since they won't
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3102 ;; appear on real backup files.
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3103 (if (eq (preceding-char) ?*)
0611604f3cd3 (dired-flag-backup-files): Under MS-DOS, search for
Karl Heuer <kwzh@gnu.org>
parents: 13033
diff changeset
3104 (forward-char -1))
13750
6a9cecd5bcfb (dired-flag-backup-files): Undo previous change.
Karl Heuer <kwzh@gnu.org>
parents: 13726
diff changeset
3105 (eq (preceding-char) ?~))
3043
29fe3ea604a2 (dired-flag-backup-files): Speedup:
Richard M. Stallman <rms@gnu.org>
parents: 2584
diff changeset
3106 (not (looking-at dired-re-dir))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3107 (let ((fn (dired-get-filename t t)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3108 (if fn (backup-file-name-p fn))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3109 "backup file")))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3110
910
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3111 (defun dired-change-marks (&optional old new)
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3112 "Change all OLD marks to NEW marks.
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3113 OLD and NEW are both characters used to mark files."
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3114 (interactive
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3115 (let* ((cursor-in-echo-area t)
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3116 (old (progn (message "Change (old mark): ") (read-char)))
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3117 (new (progn (message "Change %c marks to (new mark): " old)
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3118 (read-char))))
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3119 (list old new)))
3478
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3120 (if (or (eq old ?\r) (eq new ?\r))
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3121 (ding)
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3122 (let ((string (format "\n%c" old))
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
3123 (inhibit-read-only t))
3478
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3124 (save-excursion
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3125 (goto-char (point-min))
a917a964bef8 (dired-change-marks): Just ding if one arg is RET.
Richard M. Stallman <rms@gnu.org>
parents: 3148
diff changeset
3126 (while (search-forward string nil t)
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3127 (if (if (= old ?\s)
12211
472729271c30 (dired-change-marks): If OLD is a space, don't act on non-file lines.
Richard M. Stallman <rms@gnu.org>
parents: 12045
diff changeset
3128 (save-match-data
472729271c30 (dired-change-marks): If OLD is a space, don't act on non-file lines.
Richard M. Stallman <rms@gnu.org>
parents: 12045
diff changeset
3129 (dired-get-filename 'no-dir t))
472729271c30 (dired-change-marks): If OLD is a space, don't act on non-file lines.
Richard M. Stallman <rms@gnu.org>
parents: 12045
diff changeset
3130 t)
472729271c30 (dired-change-marks): If OLD is a space, don't act on non-file lines.
Richard M. Stallman <rms@gnu.org>
parents: 12045
diff changeset
3131 (subst-char-in-region (match-beginning 0)
472729271c30 (dired-change-marks): If OLD is a space, don't act on non-file lines.
Richard M. Stallman <rms@gnu.org>
parents: 12045
diff changeset
3132 (match-end 0) old new)))))))
910
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3133
18160
c64b7a17eea9 (dired-unmark-all-marks):
Richard M. Stallman <rms@gnu.org>
parents: 17988
diff changeset
3134 (defun dired-unmark-all-marks ()
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3135 "Remove all marks from all files in the dired buffer."
4169
45b07ea88511 (dired-unmark-all-files-no-query): New command.
Richard M. Stallman <rms@gnu.org>
parents: 4099
diff changeset
3136 (interactive)
45b07ea88511 (dired-unmark-all-files-no-query): New command.
Richard M. Stallman <rms@gnu.org>
parents: 4099
diff changeset
3137 (dired-unmark-all-files ?\r))
45b07ea88511 (dired-unmark-all-files-no-query): New command.
Richard M. Stallman <rms@gnu.org>
parents: 4099
diff changeset
3138
3102
603e39319c86 (dired-unmark-all-files): Read arg as a string.
Richard M. Stallman <rms@gnu.org>
parents: 3043
diff changeset
3139 (defun dired-unmark-all-files (mark &optional arg)
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3140 "Remove a specific mark (or any mark) from every file.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
3141 After this command, type the mark character to remove,
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3142 or type RET to remove all marks.
2458
b1834ed2c366 (dired-unmark-all-files): Read the arg as just a char.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
3143 With prefix arg, query for each marked file.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3144 Type \\[help-command] at that time for help."
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3145 (interactive "cRemove marks (RET means all): \nP")
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3146 (save-excursion
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3147 (let* ((count 0)
94889
e80a3956601b (dired-read-dir-and-switches): Ignore ., .., and
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
3148 (inhibit-read-only t) case-fold-search query
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3149 (string (format "\n%c" mark))
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3150 (help-form "\
3102
603e39319c86 (dired-unmark-all-files): Read arg as a string.
Richard M. Stallman <rms@gnu.org>
parents: 3043
diff changeset
3151 Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
603e39319c86 (dired-unmark-all-files): Read arg as a string.
Richard M. Stallman <rms@gnu.org>
parents: 3043
diff changeset
3152 `!' to unmark all remaining files with no more questions."))
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3153 (goto-char (point-min))
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3154 (while (if (eq mark ?\r)
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3155 (re-search-forward dired-re-mark nil t)
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3156 (search-forward string nil t))
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3157 (if (or (not arg)
51444
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
3158 (let ((file (dired-get-filename t t)))
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
3159 (and file
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
3160 (dired-query 'query "Unmark file `%s'? "
b53bffc0cbaf (dired-get-filename): Err for . and .. in usual case.
Richard M. Stallman <rms@gnu.org>
parents: 50831
diff changeset
3161 file))))
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3162 (progn (subst-char-in-region (1- (point)) (point)
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3163 (preceding-char) ?\s)
3524
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3164 (setq count (1+ count)))))
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3165 (message (if (= count 1) "1 mark removed"
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3166 "%d marks removed")
bedf7049667a (dired-unmark-all-files): Read arg as just a character.
Richard M. Stallman <rms@gnu.org>
parents: 3503
diff changeset
3167 count))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3168
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3169 ;; Logging failures operating on files, and showing the results.
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3170
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3171 (defvar dired-log-buffer "*Dired log*")
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3172
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3173 (defun dired-why ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3174 "Pop up a buffer with error log output from Dired.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3175 A group of errors from a single command ends with a formfeed.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3176 Thus, use \\[backward-page] to find the beginning of a group of errors."
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3177 (interactive)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3178 (if (get-buffer dired-log-buffer)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3179 (let ((owindow (selected-window))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3180 (window (display-buffer (get-buffer dired-log-buffer))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3181 (unwind-protect
910
4fba6d4b6a28 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 890
diff changeset
3182 (progn
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3183 (select-window window)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3184 (goto-char (point-max))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3185 (forward-line -1)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3186 (backward-page 1)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3187 (recenter 0))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3188 (select-window owindow)))))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3189
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3190 (defun dired-log (log &rest args)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3191 ;; Log a message or the contents of a buffer.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3192 ;; If LOG is a string and there are more args, it is formatted with
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3193 ;; those ARGS. Usually the LOG string ends with a \n.
49549
99be3a1e2589 Cygwin support patch.
Juanma Barranquero <lekktu@gmail.com>
parents: 49243
diff changeset
3194 ;; End each bunch of errors with (dired-log t):
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3195 ;; this inserts the current time and buffer at the start of the page,
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3196 ;; and \f (formfeed) at the end.
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3197 (let ((obuf (current-buffer)))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3198 (with-current-buffer (get-buffer-create dired-log-buffer)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3199 (goto-char (point-max))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3200 (let ((inhibit-read-only t))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3201 (cond ((stringp log)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3202 (insert (if args
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3203 (apply (function format) log args)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3204 log)))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3205 ((bufferp log)
64430
52b011251c32 (dired-log): Use `insert-buffer-substring', not `insert-buffer'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64193
diff changeset
3206 (insert-buffer-substring log))
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3207 ((eq t log)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3208 (backward-page 1)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3209 (unless (bolp)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3210 (insert "\n"))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3211 (insert (current-time-string)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3212 "\tBuffer `" (buffer-name obuf) "'\n")
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3213 (goto-char (point-max))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3214 (insert "\f\n")))))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3215
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3216 (defun dired-log-summary (string failures)
72716
28b70fec3284 (dired-log-summary): Add doc string.
Richard M. Stallman <rms@gnu.org>
parents: 72021
diff changeset
3217 "State a summary of a command's failures, in echo area and log buffer.
28b70fec3284 (dired-log-summary): Add doc string.
Richard M. Stallman <rms@gnu.org>
parents: 72021
diff changeset
3218 STRING is an overall summary of the failures.
28b70fec3284 (dired-log-summary): Add doc string.
Richard M. Stallman <rms@gnu.org>
parents: 72021
diff changeset
3219 FAILURES is a list of file names that we failed to operate on,
28b70fec3284 (dired-log-summary): Add doc string.
Richard M. Stallman <rms@gnu.org>
parents: 72021
diff changeset
3220 or nil if file names are not applicable."
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3221 (if (= (length failures) 1)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3222 (message "%s"
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3223 (with-current-buffer dired-log-buffer
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3224 (goto-char (point-max))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3225 (backward-page 1)
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3226 (if (eolp) (forward-line 1))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3227 (buffer-substring (point) (point-max))))
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3228 (message (if failures "%s--type ? for details (%s)"
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3229 "%s--type ? for details")
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3230 string failures))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3231 ;; Log a summary describing a bunch of errors.
47488
6ca0edea0a56 (dired-use-ls-dired): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47181
diff changeset
3232 (dired-log (concat "\n" string "\n"))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3233 (dired-log t))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3234
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3235 ;;; Sorting
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3236
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3237 ;; Most ls can only sort by name or by date (with -t), nothing else.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3238 ;; GNU ls sorts on size with -S, on extension with -X, and unsorted with -U.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3239 ;; So anything that does not contain these is sort "by name".
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3240
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3241 (defvar dired-ls-sorting-switches "SXU"
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
3242 "String of `ls' switches \(single letters\) except \"t\" that influence sorting.
52973
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3243
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3244 This indicates to Dired which option switches to watch out for because they
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3245 will change the sorting order behavior of `ls'.
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3246
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3247 To change the default sorting order \(e.g. add a `-v' option\), see the
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3248 variable `dired-listing-switches'. To temporarily override the listing
e9b83c6e5ab4 (dired-ls-sorting-switches): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52706
diff changeset
3249 format, use `\\[universal-argument] \\[dired]'.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3250
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3251 (defvar dired-sort-by-date-regexp
110205
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3252 (concat "\\(\\`\\| \\)-[^- ]*t"
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3253 ;; `dired-ls-sorting-switches' after -t overrides -t.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3254 "[^ " dired-ls-sorting-switches "]*"
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3255 "\\(\\(\\`\\| +\\)\\(--[^ ]+\\|-[^- t"
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3256 dired-ls-sorting-switches "]+\\)\\)* *$")
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3257 "Regexp recognized by Dired to set `by date' mode.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3258
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3259 (defvar dired-sort-by-name-regexp
110205
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3260 (concat "\\`\\(\\(\\`\\| +\\)\\(--[^ ]+\\|"
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3261 "-[^- t" dired-ls-sorting-switches "]+\\)\\)* *$")
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3262 "Regexp recognized by Dired to set `by name' mode.")
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3263
48491
5d690a3537aa (dired-sort-inhibit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47901
diff changeset
3264 (defvar dired-sort-inhibit nil
5d690a3537aa (dired-sort-inhibit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47901
diff changeset
3265 "Non-nil means the Dired sort command is disabled.
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3266 The idea is to set this buffer-locally in special dired buffers.")
48491
5d690a3537aa (dired-sort-inhibit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47901
diff changeset
3267
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3268 (defun dired-sort-set-modeline ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3269 ;; Set modeline display according to dired-actual-switches.
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3270 ;; Modeline display of "by name" or "by date" guarantees the user a
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3271 ;; match with the corresponding regexps. Non-matching switches are
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3272 ;; shown literally.
74969
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3273 (when (eq major-mode 'dired-mode)
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3274 (setq mode-name
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3275 (let (case-fold-search)
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
3276 (cond ((string-match
74969
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3277 dired-sort-by-name-regexp dired-actual-switches)
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3278 "Dired by name")
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3279 ((string-match
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3280 dired-sort-by-date-regexp dired-actual-switches)
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3281 "Dired by date")
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3282 (t
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3283 (concat "Dired " dired-actual-switches)))))
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3284 (force-mode-line-update)))
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3285
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3286 (defun dired-sort-toggle-or-edit (&optional arg)
110205
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3287 "Toggle sorting by date, and refresh the Dired buffer.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3288 With a prefix argument, edit the current listing switches instead."
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3289 (interactive "P")
48491
5d690a3537aa (dired-sort-inhibit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 47901
diff changeset
3290 (when dired-sort-inhibit
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3291 (error "Cannot sort this dired buffer"))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3292 (if arg
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3293 (dired-sort-other
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3294 (read-string "ls switches (must contain -l): " dired-actual-switches))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3295 (dired-sort-toggle)))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3296
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3297 (defun dired-sort-toggle ()
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3298 ;; Toggle between sort by date/name. Reverts the buffer.
110205
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3299 (let ((sorting-by-date (string-match dired-sort-by-date-regexp
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3300 dired-actual-switches))
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3301 ;; Regexp for finding (possibly embedded) -t switches.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3302 (switch-regexp "\\(\\`\\| \\)-\\([a-su-zA-Z]*\\)\\(t\\)\\([^ ]*\\)")
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3303 case-fold-search)
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3304 ;; Remove the -t switch.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3305 (while (string-match switch-regexp dired-actual-switches)
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3306 (if (and (equal (match-string 2 dired-actual-switches) "")
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3307 (equal (match-string 4 dired-actual-switches) ""))
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3308 ;; Remove a stand-alone -t switch.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3309 (setq dired-actual-switches
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3310 (replace-match "" t t dired-actual-switches))
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3311 ;; Remove a switch of the form -XtY for some X and Y.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3312 (setq dired-actual-switches
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3313 (replace-match "" t t dired-actual-switches 3))))
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3314 ;; Now, if we weren't sorting by date before, add the -t switch.
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3315 (unless sorting-by-date
f5e7d094d9d8 Improve ls date switch parsing in Dired (Bug#6987).
Chong Yidong <cyd@stupidchicken.com>
parents: 110015
diff changeset
3316 (setq dired-actual-switches (concat dired-actual-switches " -t"))))
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3317 (dired-sort-set-modeline)
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3318 (revert-buffer))
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3319
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3320 ;; Some user code loads dired especially for this.
42690
41928c5aed9c Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 42594
diff changeset
3321 ;; Don't do that--use replace-regexp-in-string instead.
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3322 (defun dired-replace-in-string (regexp newtext string)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3323 ;; Replace REGEXP with NEWTEXT everywhere in STRING and return result.
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3324 ;; NEWTEXT is taken literally---no \\DIGIT escapes will be recognized.
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3325 (let ((result "") (start 0) mb me)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3326 (while (string-match regexp string start)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3327 (setq mb (match-beginning 0)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3328 me (match-end 0)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3329 result (concat result (substring string start mb) newtext)
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3330 start me))
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3331 (concat result (substring string start))))
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3332
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3333 (defun dired-sort-other (switches &optional no-revert)
64531
733da358f853 (dired-align-file, dired-flag-backup-files, dired-change-marks,
Juanma Barranquero <lekktu@gmail.com>
parents: 64442
diff changeset
3334 "Specify new `ls' SWITCHES for current dired buffer.
54577
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
3335 Values matching `dired-sort-by-date-regexp' or `dired-sort-by-name-regexp'
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
3336 set the minor mode accordingly, others appear literally in the mode line.
664f8942b3c8 (dired-mode): Use run-mode-hooks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54548
diff changeset
3337 With optional second arg NO-REVERT, don't refresh the listing afterwards."
30414
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3338 (dired-sort-R-check switches)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3339 (setq dired-actual-switches switches)
74969
3b49658358de (dired-sort-other): Move test for dired-mode...
Nick Roberts <nickrob@snap.net.nz>
parents: 74385
diff changeset
3340 (dired-sort-set-modeline)
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
3341 (or no-revert (revert-buffer)))
30414
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3342
68267
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
3343 (defvar dired-subdir-alist-pre-R nil
45d760802689 (dired-move-to-filename-regexp): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents: 66325
diff changeset
3344 "Value of `dired-subdir-alist' before -R switch added.")
68273
9bccb5180c1b (dired-no-confirm): Add quote.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68267
diff changeset
3345 (make-variable-buffer-local 'dired-subdir-alist-pre-R)
30414
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3346
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3347 (defun dired-sort-R-check (switches)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3348 "Additional processing of -R in ls option string SWITCHES.
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3349 Saves `dired-subdir-alist' when R is set and restores saved value
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3350 minus any directories explicitly deleted when R is cleared.
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3351 To be called first in body of `dired-sort-other', etc."
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3352 (cond
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3353 ((and (string-match "R" switches)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3354 (not (string-match "R" dired-actual-switches)))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3355 ;; Adding -R to ls switches -- save `dired-subdir-alist':
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3356 (setq dired-subdir-alist-pre-R dired-subdir-alist))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3357 ((and (string-match "R" dired-actual-switches)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3358 (not (string-match "R" switches)))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3359 ;; Deleting -R from ls switches -- revert to pre-R subdirs
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3360 ;; that are still present:
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3361 (setq dired-subdir-alist
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3362 (if dired-subdir-alist-pre-R
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3363 (let (subdirs)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3364 (while dired-subdir-alist-pre-R
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3365 (if (assoc (caar dired-subdir-alist-pre-R)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3366 dired-subdir-alist)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3367 ;; subdir still present...
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3368 (setq subdirs
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3369 (cons (car dired-subdir-alist-pre-R)
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3370 subdirs)))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3371 (setq dired-subdir-alist-pre-R
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3372 (cdr dired-subdir-alist-pre-R)))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3373 (reverse subdirs))
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3374 ;; No pre-R subdir alist, so revert to main directory
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3375 ;; listing:
a8e324dcc228 (dired-sort-R-check): Added to allow recursive listing
Gerd Moellmann <gerd@gnu.org>
parents: 30130
diff changeset
3376 (list (car (reverse dired-subdir-alist))))))))
35607
5b26cd3356a1 Revert last change.
Dave Love <fx@gnu.org>
parents: 35522
diff changeset
3377
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3378
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3379 ;;;; Drag and drop support
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3380
77984
b4683039515d (dired-recursive-deletes, dired-recursive-copies): Change default to
Chong Yidong <cyd@stupidchicken.com>
parents: 77982
diff changeset
3381 (defcustom dired-recursive-copies 'top
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 100098
diff changeset
3382 "Decide whether recursive copies are allowed.
77709
fe66dc682a15 (dired-recursive-deletes, dired-recursive-copies): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 77402
diff changeset
3383 A value of nil means no recursive copies.
58426
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3384 `always' means copy recursively without asking.
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3385 `top' means ask for each directory at top level.
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3386 Anything else means ask for each directory."
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3387 :type '(choice :tag "Copy directories"
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3388 (const :tag "No recursive copies" nil)
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3389 (const :tag "Ask for each directory" t)
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3390 (const :tag "Ask for each top directory only" top)
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3391 (const :tag "Copy directories without asking" always))
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3392 :group 'dired)
eb84b4af8ff5 (dired-recursive-copies): Moved from dired-aux.el.
Richard M. Stallman <rms@gnu.org>
parents: 58412
diff changeset
3393
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3394 (defun dired-dnd-popup-notice ()
62658
4c2b5f50f981 (dired-dnd-popup-notice): Use message-box.
Nick Roberts <nickrob@snap.net.nz>
parents: 62616
diff changeset
3395 (message-box
80462
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3396 "Dired recursive copies are currently disabled.\nSee the variable `dired-recursive-copies'."))
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3397
105933
8f110099da5c Update x-popup-menu declaration.
Glenn Morris <rgm@gnu.org>
parents: 105904
diff changeset
3398 (declare-function x-popup-menu "menu.c" (position menu))
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3399
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3400 (defun dired-dnd-do-ask-action (uri)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3401 ;; No need to get actions and descriptions from the source,
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3402 ;; we only have three actions anyway.
55937
0edea1c45ca9 (dired-subdir-switches, dired-switches-alist): New vars.
Luc Teirlinck <teirllm@auburn.edu>
parents: 55862
diff changeset
3403 (let ((action (x-popup-menu
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3404 t
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3405 (list "What action?"
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3406 (cons ""
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3407 '(("Copy here" . copy)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3408 ("Move here" . move)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3409 ("Link here" . link)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3410 "--"
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3411 ("Cancel" . nil)))))))
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3412 (if action
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3413 (dired-dnd-handle-local-file uri action)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3414 nil)))
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3415
86218
2d68ac2d165c (dired-relist-entry): Declare as function.
Glenn Morris <rgm@gnu.org>
parents: 85406
diff changeset
3416 (declare-function dired-relist-entry "dired-aux" (file))
86318
996f5a68400d (make-symbolic-link): Declare as function.
Juanma Barranquero <lekktu@gmail.com>
parents: 86218
diff changeset
3417 (declare-function make-symbolic-link "fileio.c")
86218
2d68ac2d165c (dired-relist-entry): Declare as function.
Glenn Morris <rgm@gnu.org>
parents: 85406
diff changeset
3418
95841
b4e36ff621b3 Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents: 95783
diff changeset
3419 ;; Only used when (featurep 'dnd).
b4e36ff621b3 Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents: 95783
diff changeset
3420 (declare-function dnd-get-local-file-name "dnd" (uri &optional must-exist))
b4e36ff621b3 Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents: 95783
diff changeset
3421 (declare-function dnd-get-local-file-uri "dnd" (uri))
b4e36ff621b3 Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents: 95783
diff changeset
3422
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3423 (defun dired-dnd-handle-local-file (uri action)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3424 "Copy, move or link a file to the dired directory.
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3425 URI is the file to handle, ACTION is one of copy, move, link or ask.
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3426 Ask means pop up a menu for the user to select one of copy, move or link."
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3427 (require 'dired-aux)
61478
ca956f06ae9e * dired.el (dired-mode): Use dnd-* instead of x-dnd-*
Jan Djärv <jan.h.d@swipnet.se>
parents: 61296
diff changeset
3428 (let* ((from (dnd-get-local-file-name uri t))
80462
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3429 (to (when from
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3430 (concat (dired-current-directory)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3431 (file-name-nondirectory from)))))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3432 (when from
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3433 (cond ((eq action 'ask)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3434 (dired-dnd-do-ask-action uri))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3435 ;; If copying a directory and dired-recursive-copies is
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3436 ;; nil, dired-copy-file fails. Pop up a notice.
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3437 ((and (memq action '(copy private))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3438 (file-directory-p from)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3439 (not dired-recursive-copies))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3440 (dired-dnd-popup-notice))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3441 ((memq action '(copy private move link))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3442 (let ((overwrite (and (file-exists-p to)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3443 (y-or-n-p
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3444 (format "Overwrite existing file `%s'? " to))))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3445 ;; Binding dired-overwrite-confirmed to nil makes
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3446 ;; dired-handle-overwrite a no-op. We instead use
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3447 ;; y-or-n-p, which pops a graphical menu.
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3448 dired-overwrite-confirmed backup-file)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3449 (when (and overwrite
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3450 ;; d-b-o is defined in dired-aux.
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3451 (boundp 'dired-backup-overwrite)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3452 dired-backup-overwrite
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3453 (setq backup-file
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3454 (car (find-backup-file-name to)))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3455 (or (eq dired-backup-overwrite 'always)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3456 (y-or-n-p
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3457 (format
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3458 "Make backup for existing file `%s'? " to))))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3459 (rename-file to backup-file 0)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3460 (dired-relist-entry backup-file))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3461 (cond ((memq action '(copy private))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3462 (dired-copy-file from to overwrite))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3463 ((eq action 'move)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3464 (dired-rename-file from to overwrite))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3465 ((eq action 'link)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3466 (make-symbolic-link from to overwrite)))
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3467 (dired-relist-entry to)
837d54fb9fc9 (dired-dnd-handle-local-file): Obey dired-backup-overwrite for copy,
Chong Yidong <cyd@stupidchicken.com>
parents: 80336
diff changeset
3468 action))))))
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3469
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3470 (defun dired-dnd-handle-file (uri action)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3471 "Copy, move or link a file to the dired directory if it is a local file.
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3472 URI is the file to handle. If the hostname in the URI isn't local, do nothing.
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3473 ACTION is one of copy, move, link or ask.
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3474 Ask means pop up a menu for the user to select one of copy, move or link."
61478
ca956f06ae9e * dired.el (dired-mode): Use dnd-* instead of x-dnd-*
Jan Djärv <jan.h.d@swipnet.se>
parents: 61296
diff changeset
3475 (let ((local-file (dnd-get-local-file-uri uri)))
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3476 (if local-file (dired-dnd-handle-local-file local-file action)
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3477 nil)))
55058
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3478
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3479
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3480 ;;;; Desktop support
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3481
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3482 (eval-when-compile (require 'desktop))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3483
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3484 (defun dired-desktop-buffer-misc-data (desktop-dirname)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3485 "Auxiliary information to be saved in desktop file."
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3486 (cons
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3487 ;; Value of `dired-directory'.
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3488 (if (consp dired-directory)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3489 ;; Directory name followed by list of files.
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3490 (cons (desktop-file-name (car dired-directory) desktop-dirname)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3491 (cdr dired-directory))
64442
11d53eaa016c (dired-desktop-buffer-misc-data, dired-restore-desktop-buffer):
Juri Linkov <juri@jurta.org>
parents: 64430
diff changeset
3492 ;; Directory name, optionally with shell wildcard.
55058
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3493 (desktop-file-name dired-directory desktop-dirname))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3494 ;; Subdirectories in `dired-subdir-alist'.
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3495 (cdr
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3496 (nreverse
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3497 (mapcar
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3498 (function (lambda (f) (desktop-file-name (car f) desktop-dirname)))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3499 dired-subdir-alist)))))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3500
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3501 (defun dired-restore-desktop-buffer (desktop-buffer-file-name
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3502 desktop-buffer-name
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3503 desktop-buffer-misc)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3504 "Restore a dired buffer specified in a desktop file."
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3505 ;; First element of `desktop-buffer-misc' is the value of `dired-directory'.
64442
11d53eaa016c (dired-desktop-buffer-misc-data, dired-restore-desktop-buffer):
Juri Linkov <juri@jurta.org>
parents: 64430
diff changeset
3506 ;; This value is a directory name, optionally with shell wildcard or
55058
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3507 ;; a directory name followed by list of files.
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3508 (let* ((dired-dir (car desktop-buffer-misc))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3509 (dir (if (consp dired-dir) (car dired-dir) dired-dir)))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3510 (if (file-directory-p (file-name-directory dir))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3511 (progn
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3512 (dired dired-dir)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3513 ;; The following elements of `desktop-buffer-misc' are the keys
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3514 ;; from `dired-subdir-alist'.
84860
a853167e2059 (dired-restore-desktop-buffer): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents: 82365
diff changeset
3515 (mapc 'dired-maybe-insert-subdir (cdr desktop-buffer-misc))
55058
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3516 (current-buffer))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3517 (message "Desktop: Directory %s no longer exists." dir)
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3518 (when desktop-missing-file-warning (sit-for 1))
053797c3d447 (dired-restore-desktop-buffer) Move from desktop.el. Add parameters.
Lars Hansen <larsh@soem.dk>
parents: 54780
diff changeset
3519 nil)))
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3520
64961
1fa57fbe3d5f Revert last change.
Andreas Schwab <schwab@suse.de>
parents: 64955
diff changeset
3521 (add-to-list 'desktop-buffer-mode-handlers
1fa57fbe3d5f Revert last change.
Andreas Schwab <schwab@suse.de>
parents: 64955
diff changeset
3522 '(dired-mode . dired-restore-desktop-buffer))
64894
aee8ba4e5b1a Add handler to desktop-buffer-mode-handlers.
Lars Hansen <larsh@soem.dk>
parents: 64762
diff changeset
3523
53789
7efe8089eadf * x-dnd.el: New file for drag and drop.
Jan Djärv <jan.h.d@swipnet.se>
parents: 53224
diff changeset
3524
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3525 ;;; Start of automatically extracted autoloads.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3526
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3527 ;;;### (autoloads (dired-show-file-type dired-do-query-replace-regexp
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3528 ;;;;;; dired-do-search dired-do-isearch-regexp dired-do-isearch
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3529 ;;;;;; dired-isearch-filenames-regexp dired-isearch-filenames dired-isearch-filenames-setup
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3530 ;;;;;; dired-hide-all dired-hide-subdir dired-tree-down dired-tree-up
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3531 ;;;;;; dired-kill-subdir dired-mark-subdir-files dired-goto-subdir
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3532 ;;;;;; dired-prev-subdir dired-insert-subdir dired-maybe-insert-subdir
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3533 ;;;;;; dired-downcase dired-upcase dired-do-symlink-regexp dired-do-hardlink-regexp
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3534 ;;;;;; dired-do-copy-regexp dired-do-rename-regexp dired-do-rename
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3535 ;;;;;; dired-do-hardlink dired-do-symlink dired-do-copy dired-create-directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3536 ;;;;;; dired-rename-file dired-copy-file dired-relist-file dired-remove-file
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3537 ;;;;;; dired-add-file dired-do-redisplay dired-do-load dired-do-byte-compile
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3538 ;;;;;; dired-do-compress dired-query dired-compress-file dired-do-kill-lines
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3539 ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3540 ;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3541 ;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 109553
diff changeset
3542 ;;;;;; dired-diff) "dired-aux" "dired-aux.el" "416d272299fd4774c47c2f677ee640a4")
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3543 ;;; Generated autoloads from dired-aux.el
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3544
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3545 (autoload 'dired-diff "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3546 Compare file at point with file FILE using `diff'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3547 FILE defaults to the file at the mark. (That's the mark set by
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3548 \\[set-mark-command], not by Dired's \\[dired-mark] command.)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3549 The prompted-for file is the first file given to `diff'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3550 With prefix arg, prompt for second argument SWITCHES,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3551 which is options for `diff'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3552
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3553 \(fn FILE &optional SWITCHES)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3554
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3555 (autoload 'dired-backup-diff "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3556 Diff this file with its backup file or vice versa.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3557 Uses the latest backup, if there are several numerical backups.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3558 If this file is a backup, diff it with its original.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3559 The backup file is the first file given to `diff'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3560 With prefix arg, prompt for argument SWITCHES which is options for `diff'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3561
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3562 \(fn &optional SWITCHES)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3563
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3564 (autoload 'dired-compare-directories "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3565 Mark files with different file attributes in two dired buffers.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3566 Compare file attributes of files in the current directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3567 with file attributes in directory DIR2 using PREDICATE on pairs of files
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3568 with the same name. Mark files for which PREDICATE returns non-nil.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3569 Mark files with different names if PREDICATE is nil (or interactively
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3570 with empty input at the predicate prompt).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3571
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3572 PREDICATE is a Lisp expression that can refer to the following variables:
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3573
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3574 size1, size2 - file size in bytes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3575 mtime1, mtime2 - last modification time in seconds, as a float
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3576 fa1, fa2 - list of file attributes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3577 returned by function `file-attributes'
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3578
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3579 where 1 refers to attribute of file in the current dired buffer
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3580 and 2 to attribute of file in second dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3581
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3582 Examples of PREDICATE:
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3583
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3584 (> mtime1 mtime2) - mark newer files
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3585 (not (= size1 size2)) - mark files with different sizes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3586 (not (string= (nth 8 fa1) (nth 8 fa2))) - mark files with different modes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3587 (not (and (= (nth 2 fa1) (nth 2 fa2)) - mark files with different UID
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3588 (= (nth 3 fa1) (nth 3 fa2)))) and GID.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3589
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3590 \(fn DIR2 PREDICATE)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3591
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3592 (autoload 'dired-do-chmod "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3593 Change the mode of the marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3594 Symbolic modes like `g+w' are allowed.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3595
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3596 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3597
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3598 (autoload 'dired-do-chgrp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3599 Change the group of the marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3600
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3601 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3602
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3603 (autoload 'dired-do-chown "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3604 Change the owner of the marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3605
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3606 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3607
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3608 (autoload 'dired-do-touch "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3609 Change the timestamp of the marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3610 This calls touch.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3611
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3612 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3613
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3614 (autoload 'dired-do-print "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3615 Print the marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3616 Uses the shell command coming from variables `lpr-command' and
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3617 `lpr-switches' as default.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3618
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3619 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3620
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3621 (autoload 'dired-clean-directory "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3622 Flag numerical backups for deletion.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3623 Spares `dired-kept-versions' latest versions, and `kept-old-versions' oldest.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3624 Positive prefix arg KEEP overrides `dired-kept-versions';
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3625 Negative prefix arg KEEP overrides `kept-old-versions' with KEEP made positive.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3626
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3627 To clear the flags on these files, you can use \\[dired-flag-backup-files]
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3628 with a prefix argument.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3629
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3630 \(fn KEEP)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3631
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3632 (autoload 'dired-do-async-shell-command "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3633 Run a shell command COMMAND on the marked files asynchronously.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3634
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3635 Like `dired-do-shell-command' but if COMMAND doesn't end in ampersand,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3636 adds `* &' surrounded by whitespace and executes the command asynchronously.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3637 The output appears in the buffer `*Async Shell Command*'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3638
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3639 \(fn COMMAND &optional ARG FILE-LIST)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3640
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3641 (autoload 'dired-do-shell-command "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3642 Run a shell command COMMAND on the marked files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3643 If no files are marked or a specific numeric prefix arg is given,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3644 the next ARG files are used. Just \\[universal-argument] means the current file.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3645 The prompt mentions the file(s) or the marker, as appropriate.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3646
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3647 If there is a `*' in COMMAND, surrounded by whitespace, this runs
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3648 COMMAND just once with the entire file list substituted there.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3649
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3650 If there is no `*', but there is a `?' in COMMAND, surrounded by
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3651 whitespace, this runs COMMAND on each file individually with the
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3652 file name substituted for `?'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3653
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3654 Otherwise, this runs COMMAND on each file individually with the
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3655 file name added at the end of COMMAND (separated by a space).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3656
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3657 `*' and `?' when not surrounded by whitespace have no special
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3658 significance for `dired-do-shell-command', and are passed through
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3659 normally to the shell, but you must confirm first. To pass `*' by
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3660 itself to the shell as a wildcard, type `*\"\"'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3661
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3662 If COMMAND produces output, it goes to a separate buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3663
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3664 This feature does not try to redisplay Dired buffers afterward, as
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3665 there's no telling what files COMMAND may have changed.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3666 Type \\[dired-do-redisplay] to redisplay the marked files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3667
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 105091
diff changeset
3668 When COMMAND runs, its working directory is the top-level directory
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 105091
diff changeset
3669 of the Dired buffer, so output files usually are created there
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 105091
diff changeset
3670 instead of in a subdir.
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3671
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3672 In a noninteractive call (from Lisp code), you must specify
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3673 the list of file names explicitly with the FILE-LIST argument, which
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3674 can be produced by `dired-get-marked-files', for example.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3675
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3676 \(fn COMMAND &optional ARG FILE-LIST)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3677
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3678 (autoload 'dired-run-shell-command "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3679 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3680
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3681 \(fn COMMAND)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3682
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3683 (autoload 'dired-do-kill-lines "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3684 Kill all marked lines (not the files).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3685 With a prefix argument, kill that many lines starting with the current line.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3686 \(A negative argument kills backward.)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3687 If you use this command with a prefix argument to kill the line
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3688 for a file that is a directory, which you have inserted in the
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3689 Dired buffer as a subdirectory, then it deletes that subdirectory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3690 from the buffer as well.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3691 To kill an entire subdirectory (without killing its line in the
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3692 parent directory), go to its directory header line and use this
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3693 command with a prefix argument (the value does not matter).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3694
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3695 \(fn &optional ARG FMT)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3696
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3697 (autoload 'dired-compress-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3698 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3699
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3700 \(fn FILE)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3701
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3702 (autoload 'dired-query "dired-aux" "\
105091
7a298bd3ef6e Update.
Juanma Barranquero <lekktu@gmail.com>
parents: 105024
diff changeset
3703 Query user and return nil or t.
7a298bd3ef6e Update.
Juanma Barranquero <lekktu@gmail.com>
parents: 105024
diff changeset
3704 Store answer in symbol VAR (which must initially be bound to nil).
7a298bd3ef6e Update.
Juanma Barranquero <lekktu@gmail.com>
parents: 105024
diff changeset
3705 Format PROMPT with ARGS.
7a298bd3ef6e Update.
Juanma Barranquero <lekktu@gmail.com>
parents: 105024
diff changeset
3706 Binding variable `help-form' will help the user who types the help key.
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3707
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3708 \(fn QS-VAR QS-PROMPT &rest QS-ARGS)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3709
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3710 (autoload 'dired-do-compress "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3711 Compress or uncompress marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3712
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3713 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3714
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3715 (autoload 'dired-do-byte-compile "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3716 Byte compile marked (or next ARG) Emacs Lisp files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3717
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3718 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3719
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3720 (autoload 'dired-do-load "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3721 Load the marked (or next ARG) Emacs Lisp files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3722
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3723 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3724
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3725 (autoload 'dired-do-redisplay "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3726 Redisplay all marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3727 If on a subdir line, redisplay that subdirectory. In that case,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3728 a prefix arg lets you edit the `ls' switches used for the new listing.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3729
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3730 Dired remembers switches specified with a prefix arg, so that reverting
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3731 the buffer will not reset them. However, using `dired-undo' to re-insert
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3732 or delete subdirectories can bypass this machinery. Hence, you sometimes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3733 may have to reset some subdirectory switches after a `dired-undo'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3734 You can reset all subdirectory switches to the default using
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3735 \\<dired-mode-map>\\[dired-reset-subdir-switches].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3736 See Info node `(emacs)Subdir switches' for more details.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3737
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3738 \(fn &optional ARG TEST-FOR-SUBDIR)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3739
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3740 (autoload 'dired-add-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3741 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3742
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3743 \(fn FILENAME &optional MARKER-CHAR)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3744
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3745 (autoload 'dired-remove-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3746 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3747
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3748 \(fn FILE)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3749
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3750 (autoload 'dired-relist-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3751 Create or update the line for FILE in all Dired buffers it would belong in.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3752
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3753 \(fn FILE)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3754
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3755 (autoload 'dired-copy-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3756 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3757
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3758 \(fn FROM TO OK-FLAG)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3759
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3760 (autoload 'dired-rename-file "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3761 Not documented
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3762
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3763 \(fn FILE NEWNAME OK-IF-ALREADY-EXISTS)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3764
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3765 (autoload 'dired-create-directory "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3766 Create a directory called DIRECTORY.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3767
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3768 \(fn DIRECTORY)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3769
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3770 (autoload 'dired-do-copy "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3771 Copy all marked (or next ARG) files, or copy the current file.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3772 This normally preserves the last-modified date when copying.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3773 When operating on just the current file, you specify the new name.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3774 When operating on multiple or marked files, you specify a directory,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3775 and new copies of these files are made in that directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3776 with the same names that the files currently have. The default
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3777 suggested for the target directory depends on the value of
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3778 `dired-dwim-target', which see.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3779
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3780 This command copies symbolic links by creating new ones,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3781 like `cp -d'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3782
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3783 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3784
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3785 (autoload 'dired-do-symlink "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3786 Make symbolic links to current file or all marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3787 When operating on just the current file, you specify the new name.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3788 When operating on multiple or marked files, you specify a directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3789 and new symbolic links are made in that directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3790 with the same names that the files currently have. The default
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3791 suggested for the target directory depends on the value of
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3792 `dired-dwim-target', which see.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3793
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3794 For relative symlinks, use \\[dired-do-relsymlink].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3795
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3796 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3797
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3798 (autoload 'dired-do-hardlink "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3799 Add names (hard links) current file or all marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3800 When operating on just the current file, you specify the new name.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3801 When operating on multiple or marked files, you specify a directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3802 and new hard links are made in that directory
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3803 with the same names that the files currently have. The default
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3804 suggested for the target directory depends on the value of
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3805 `dired-dwim-target', which see.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3806
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3807 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3808
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3809 (autoload 'dired-do-rename "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3810 Rename current file or all marked (or next ARG) files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3811 When renaming just the current file, you specify the new name.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3812 When renaming multiple or marked files, you specify a directory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3813 This command also renames any buffers that are visiting the files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3814 The default suggested for the target directory depends on the value
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3815 of `dired-dwim-target', which see.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3816
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3817 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3818
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3819 (autoload 'dired-do-rename-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3820 Rename selected files whose names match REGEXP to NEWNAME.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3821
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3822 With non-zero prefix argument ARG, the command operates on the next ARG
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3823 files. Otherwise, it operates on all the marked files, or the current
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3824 file if none are marked.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3825
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3826 As each match is found, the user must type a character saying
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3827 what to do with it. For directions, type \\[help-command] at that time.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3828 NEWNAME may contain \\=\\<n> or \\& as in `query-replace-regexp'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3829 REGEXP defaults to the last regexp used.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3830
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3831 With a zero prefix arg, renaming by regexp affects the absolute file name.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3832 Normally, only the non-directory part of the file name is used and changed.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3833
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3834 \(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3835
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3836 (autoload 'dired-do-copy-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3837 Copy selected files whose names match REGEXP to NEWNAME.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3838 See function `dired-do-rename-regexp' for more info.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3839
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3840 \(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3841
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3842 (autoload 'dired-do-hardlink-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3843 Hardlink selected files whose names match REGEXP to NEWNAME.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3844 See function `dired-do-rename-regexp' for more info.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3845
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3846 \(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3847
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3848 (autoload 'dired-do-symlink-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3849 Symlink selected files whose names match REGEXP to NEWNAME.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3850 See function `dired-do-rename-regexp' for more info.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3851
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3852 \(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3853
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3854 (autoload 'dired-upcase "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3855 Rename all marked (or next ARG) files to upper case.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3856
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3857 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3858
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3859 (autoload 'dired-downcase "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3860 Rename all marked (or next ARG) files to lower case.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3861
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3862 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3863
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3864 (autoload 'dired-maybe-insert-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3865 Insert this subdirectory into the same dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3866 If it is already present, just move to it (type \\[dired-do-redisplay] to refresh),
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3867 else inserts it at its natural place (as `ls -lR' would have done).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3868 With a prefix arg, you may edit the ls switches used for this listing.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3869 You can add `R' to the switches to expand the whole tree starting at
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3870 this subdirectory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3871 This function takes some pains to conform to `ls -lR' output.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3872
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3873 Dired remembers switches specified with a prefix arg, so that reverting
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3874 the buffer will not reset them. However, using `dired-undo' to re-insert
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3875 or delete subdirectories can bypass this machinery. Hence, you sometimes
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3876 may have to reset some subdirectory switches after a `dired-undo'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3877 You can reset all subdirectory switches to the default using
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3878 \\<dired-mode-map>\\[dired-reset-subdir-switches].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3879 See Info node `(emacs)Subdir switches' for more details.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3880
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3881 \(fn DIRNAME &optional SWITCHES NO-ERROR-IF-NOT-DIR-P)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3882
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3883 (autoload 'dired-insert-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3884 Insert this subdirectory into the same dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3885 If it is already present, overwrites previous entry,
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3886 else inserts it at its natural place (as `ls -lR' would have done).
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3887 With a prefix arg, you may edit the `ls' switches used for this listing.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3888 You can add `R' to the switches to expand the whole tree starting at
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3889 this subdirectory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3890 This function takes some pains to conform to `ls -lR' output.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3891
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3892 \(fn DIRNAME &optional SWITCHES NO-ERROR-IF-NOT-DIR-P)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3893
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3894 (autoload 'dired-prev-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3895 Go to previous subdirectory, regardless of level.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3896 When called interactively and not on a subdir line, go to this subdir's line.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3897
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3898 \(fn ARG &optional NO-ERROR-IF-NOT-FOUND NO-SKIP)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3899
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3900 (autoload 'dired-goto-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3901 Go to end of header line of DIR in this dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3902 Return value of point on success, otherwise return nil.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3903 The next char is either \\n, or \\r if DIR is hidden.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3904
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3905 \(fn DIR)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3906
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3907 (autoload 'dired-mark-subdir-files "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3908 Mark all files except `.' and `..' in current subdirectory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3909 If the Dired buffer shows multiple directories, this command
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3910 marks the files listed in the subdirectory that point is in.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3911
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3912 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3913
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3914 (autoload 'dired-kill-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3915 Remove all lines of current subdirectory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3916 Lower levels are unaffected.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3917
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3918 \(fn &optional REMEMBER-MARKS)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3919
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3920 (autoload 'dired-tree-up "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3921 Go up ARG levels in the dired tree.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3922
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3923 \(fn ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3924
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3925 (autoload 'dired-tree-down "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3926 Go down in the dired tree.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3927
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3928 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3929
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3930 (autoload 'dired-hide-subdir "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3931 Hide or unhide the current subdirectory and move to next directory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3932 Optional prefix arg is a repeat factor.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3933 Use \\[dired-hide-all] to (un)hide all directories.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3934
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3935 \(fn ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3936
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3937 (autoload 'dired-hide-all "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3938 Hide all subdirectories, leaving only their header lines.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3939 If there is already something hidden, make everything visible again.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3940 Use \\[dired-hide-subdir] to (un)hide a particular subdirectory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3941
106922
6657954b1aa2 * lisp/dired-aux.el (dired-hide-all): Make unused arg optional. Update md5sum.
Chong Yidong <cyd@stupidchicken.com>
parents: 106817
diff changeset
3942 \(fn &optional IGNORED)" t nil)
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3943
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3944 (autoload 'dired-isearch-filenames-setup "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3945 Set up isearch to search in Dired file names.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3946 Intended to be added to `isearch-mode-hook'.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3947
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3948 \(fn)" nil nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3949
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3950 (autoload 'dired-isearch-filenames "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3951 Search for a string using Isearch only in file names in the Dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3952
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3953 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3954
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3955 (autoload 'dired-isearch-filenames-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3956 Search for a regexp using Isearch only in file names in the Dired buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3957
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3958 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3959
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3960 (autoload 'dired-do-isearch "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3961 Search for a string through all marked files using Isearch.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3962
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3963 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3964
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3965 (autoload 'dired-do-isearch-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3966 Search for a regexp through all marked files using Isearch.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3967
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3968 \(fn)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3969
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3970 (autoload 'dired-do-search "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3971 Search through all marked files for a match for REGEXP.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3972 Stops when a match is found.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3973 To continue searching for next match, use command \\[tags-loop-continue].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3974
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3975 \(fn REGEXP)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3976
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3977 (autoload 'dired-do-query-replace-regexp "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3978 Do `query-replace-regexp' of FROM with TO, on all marked files.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3979 Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3980 If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3981 with the command \\[tags-loop-continue].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3982
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3983 \(fn FROM TO &optional DELIMITED)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3984
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3985 (autoload 'dired-show-file-type "dired-aux" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3986 Print the type of FILE, according to the `file' command.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3987 If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3988 true then the type of the file linked to by FILE is printed instead.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3989
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3990 \(fn FILE &optional DEREF-SYMLINKS)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3991
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3992 ;;;***
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3993
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3994 ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 109553
diff changeset
3995 ;;;;;; "27c312d6d5d40d8cb4ef8d62e30d5f4a")
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3996 ;;; Generated autoloads from dired-x.el
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3997
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3998 (autoload 'dired-jump "dired-x" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
3999 Jump to dired buffer corresponding to current buffer.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4000 If in a file, dired the current directory and move to file's line.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4001 If in Dired already, pop up a level and goto old directory's line.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4002 In case the proper dired file line cannot be found, refresh the dired
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4003 buffer and try again.
108715
5b835c23f034 * dired-x.el (dired-jump, dired-jump-other-window): Add arg
Juri Linkov <juri@jurta.org>
parents: 107815
diff changeset
4004 When OTHER-WINDOW is non-nil, jump to dired buffer in other window.
5b835c23f034 * dired-x.el (dired-jump, dired-jump-other-window): Add arg
Juri Linkov <juri@jurta.org>
parents: 107815
diff changeset
4005 Interactively with prefix argument, read FILE-NAME and
5b835c23f034 * dired-x.el (dired-jump, dired-jump-other-window): Add arg
Juri Linkov <juri@jurta.org>
parents: 107815
diff changeset
4006 move to its line in dired.
5b835c23f034 * dired-x.el (dired-jump, dired-jump-other-window): Add arg
Juri Linkov <juri@jurta.org>
parents: 107815
diff changeset
4007
5b835c23f034 * dired-x.el (dired-jump, dired-jump-other-window): Add arg
Juri Linkov <juri@jurta.org>
parents: 107815
diff changeset
4008 \(fn &optional OTHER-WINDOW FILE-NAME)" t nil)
104944
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4009
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4010 (autoload 'dired-do-relsymlink "dired-x" "\
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4011 Relative symlink all marked (or next ARG) files into a directory.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4012 Otherwise make a relative symbolic link to the current file.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4013 This creates relative symbolic links like
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4014
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4015 foo -> ../bar/foo
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4016
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4017 not absolute ones like
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4018
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4019 foo -> /ugly/file/name/that/may/change/any/day/bar/foo
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4020
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4021 For absolute symlinks, use \\[dired-do-symlink].
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4022
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4023 \(fn &optional ARG)" t nil)
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4024
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4025 ;;;***
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4026
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4027 ;;; End of automatically extracted autoloads.
0325f606c9c1 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104922
diff changeset
4028
4888
a58a505c42d9 `provide' "dired" before running user hooks.
Brian Fox <bfox@gnu.org>
parents: 4760
diff changeset
4029 (provide 'dired)
a58a505c42d9 `provide' "dired" before running user hooks.
Brian Fox <bfox@gnu.org>
parents: 4760
diff changeset
4030
723
a898ba10b49c *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 661
diff changeset
4031 (run-hooks 'dired-load-hook) ; for your customizations
661
36fbc3f71803 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
4032
58412
b9a1c1b8d195 (dired-align-file): Don't assume line starts with spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57943
diff changeset
4033 ;; arch-tag: e1af7a8f-691c-41a0-aac1-ddd4d3c87517
834
2e0cd4e83c2e *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 778
diff changeset
4034 ;;; dired.el ends here