annotate lisp/dired-x.el @ 24419:30e478cd167e

(shell-command-default-error-buffer): Renamed from shell-command-on-region-default-error-buffer. (shell-command-on-region): Mention in echo area when there is some error output. Mention success or failure, too. Accumulate multiple error outputs going forward, with formfeed in between. Display the error buffer when we have put something in it. (shell-command): Add the ERROR-BUFFER argument feature.
author Karl Heuer <kwzh@gnu.org>
date Mon, 01 Mar 1999 03:19:32 +0000
parents 0005f4030460
children d414a697a646
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 ;;; dired-x.el --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs19
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3 ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4 ;; Lawrence R. Dodd <dodd@roebling.poly.edu>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Maintainer: Lawrence R. Dodd <dodd@roebling.poly.edu>
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
6 ;; Version: 2.37+
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
7 ;; Date: 1994/08/18 19:27:42
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; Keywords: dired extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
10 ;; Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is free software; you can redistribute it and/or modify
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
7189
c8023bf9c03d Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 6694
diff changeset
16 ;; the Free Software Foundation; either version 2, or (at your option)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; any later version.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; GNU General Public License for more details.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
26 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
27 ;; Boston, MA 02111-1307, USA.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
29 ;;; Commentary:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
31 ;; This is Sebastian Kremer's excellent dired-x.el (Dired Extra), version
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
32 ;; 1.191, hacked up for GNU Emacs 19. Redundant or conflicting material
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
33 ;; has been removed or renamed in order to work properly with dired of
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
34 ;; GNU Emacs 19. All suggestions or comments are most welcomed.
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
35
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
36 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
37 ;; Please, PLEASE, *PLEASE* see the info pages.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
38 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
39
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
40 ;; BUGS: Type M-x dired-x-submit-report and a report will be generated.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
42 ;; INSTALLATION: In your ~/.emacs,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
43 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
44 ;; (add-hook 'dired-load-hook
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
45 ;; (function (lambda ()
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
46 ;; (load "dired-x")
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
47 ;; ;; Set global variables here. For example:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
48 ;; ;; (setq dired-guess-shell-gnutar "gtar")
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
49 ;; )))
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
50 ;; (add-hook 'dired-mode-hook
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
51 ;; (function (lambda ()
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
52 ;; ;; Set buffer-local variables here. For example:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
53 ;; ;; (setq dired-omit-files-p t)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
54 ;; )))
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
55 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
56 ;; At load time dired-x.el will install itself, redefine some functions, and
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
57 ;; bind some dired keys. *Please* see the info pages for more details.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
59 ;; CAUTION: If you are using a version of GNU Emacs earlier than 19.20 than
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
60 ;; you may have to edit dired.el. The copy of dired.el in GNU Emacs versions
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
61 ;; earlier than 19.20 incorrectly had the call to run-hooks *before* the call
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
62 ;; to provide. In such a case, it is possible that byte-compiling and/or
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
63 ;; loading dired can cause an infinite loop. To prevent this, make sure the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
64 ;; line of code
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
65 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
66 ;; (run-hooks 'dired-load-hook)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
67 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
68 ;; is the *last* executable line in the file dired.el. That is, make sure it
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
69 ;; comes *after* the line
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
70 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
71 ;; (provide 'dired)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
72 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
73 ;; *Please* see the info pages for more details.
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
74
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
75 ;; User defined variables:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
76 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
77 ;; dired-bind-vm
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
78 ;; dired-vm-read-only-folders
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
79 ;; dired-bind-jump
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
80 ;; dired-bind-info
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
81 ;; dired-bind-man
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
82 ;; dired-x-hands-off-my-keys
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
83 ;; dired-find-subdir
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
84 ;; dired-enable-local-variables
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
85 ;; dired-local-variables-file
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
86 ;; dired-guess-shell-gnutar
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
87 ;; dired-guess-shell-gzip-quiet
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
88 ;; dired-guess-shell-znew-switches
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
89 ;; dired-guess-shell-alist-user
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
90 ;; dired-clean-up-buffers-too
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
91 ;; dired-omit-files-p
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
92 ;; dired-omit-files
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
93 ;; dired-omit-extensions
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
94 ;; dired-omit-size-limit
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
95 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
96 ;; To find out more about these variables, load this file, put your cursor at
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
97 ;; the end of any of the variable names, and hit C-h v [RET]. *Please* see
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
98 ;; the info pages for more details.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
100 ;; When loaded this code redefines the following functions of GNU Emacs
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
101 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
102 ;; Function Found in this file of GNU Emacs
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
103 ;; -------- -------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
104 ;; dired-clean-up-after-deletion ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
105 ;; dired-find-buffer-nocreate ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
106 ;; dired-initial-position ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
107 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
108 ;; dired-add-entry ../lisp/dired-aux.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
109 ;; dired-read-shell-command ../lisp/dired-aux.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
110 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
111 ;; One drawback is that dired-x.el will load dired-aux.el as soon as dired is
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
112 ;; loaded. Thus, the advantage of separating out non-essential dired stuff
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
113 ;; into dired-aux.el and only loading when necessary will be lost. Please
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
114 ;; note also that some of the comments in dired.el and dired-aux.el are
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
115 ;; Kremer's that referred to the old dired-x.el. This now should be referring
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
116 ;; to this program. (This is also a good reason to call this dired-x.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
117 ;; instead of dired-x19.el.)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
120 ;;; Code:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
122 ;; LOAD.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
124 ;; This is a no-op if dired-x is being loaded via `dired-load-hook'. It is
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
125 ;; here in case the user has autoloaded dired-x via the dired-jump key binding
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
126 ;; (instead of autoloading to dired as is suggested in the info-pages).
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
127
7839
eb9d06dba04b Require dired and dired-aux in the standard way.
Richard M. Stallman <rms@gnu.org>
parents: 7700
diff changeset
128 (require 'dired)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
129
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
130 ;; We will redefine some functions and also need some macros so we need to
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
131 ;; load dired stuff of GNU Emacs.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132
7839
eb9d06dba04b Require dired and dired-aux in the standard way.
Richard M. Stallman <rms@gnu.org>
parents: 7700
diff changeset
133 (require 'dired-aux)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
134
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
135 ;;; User-defined variables.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
137 (defgroup dired-x nil
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
138 "Extended directory editing (dired-x)."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
139 :group 'dired)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
140
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
141 (defgroup dired-keys nil
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
142 "Dired keys customizations."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
143 :prefix "dired-"
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
144 :group 'dired-x)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
145
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
146 (defcustom dired-bind-vm nil
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 "*t says \"V\" in dired-mode will `dired-vm', otherwise \"V\" is `dired-rmail'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 Also, RMAIL files contain -*- rmail -*- at the top so \"f\",
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
149 `dired-advertised-find-file', will run rmail."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
150 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
151 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
153 (defcustom dired-bind-jump t
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
154 "*t says bind `dired-jump' to C-x C-j, otherwise do not."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
155 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
156 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
158 (defcustom dired-bind-man t
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
159 "*t says bind `dired-man' to \"N\" in dired-mode, otherwise do not."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
160 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
161 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
163 (defcustom dired-bind-info t
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
164 "*t says bind `dired-info' to \"I\" in dired-mode, otherwise do not."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
165 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
166 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
168 (defcustom dired-vm-read-only-folders nil
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 "*If t, \\[dired-vm] will visit all folders read-only.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 If neither nil nor t, e.g. the symbol `if-file-read-only', only
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171 files not writable by you are visited read-only.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
173 Read-only folders only work in VM 5, not in VM 4."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
174 :type '(choice (const :tag "off" nil)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
175 (const :tag "on" t)
22574
3c7216baafaf (dired-vm-read-only-folders): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents: 22177
diff changeset
176 (other :tag "non-writable only" if-file-read-only))
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
177 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
179 (defcustom dired-omit-files-p nil
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 "*If non-nil, \"uninteresting\" files are not listed (buffer-local).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 Use \\[dired-omit-toggle] to toggle its value.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182 Uninteresting files are those whose filenames match regexp `dired-omit-files',
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
183 plus those ending with extensions in `dired-omit-extensions'."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
184 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
185 :group 'dired-x)
11500
1bae87dcd653 Change the instructions in the INSTALLATION
Karl Heuer <kwzh@gnu.org>
parents: 11035
diff changeset
186 (make-variable-buffer-local 'dired-omit-files-p)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187
18838
6f9fa4c8e92a (dired-omit-files): Add ".#foo" lock files to omissions.
Richard M. Stallman <rms@gnu.org>
parents: 17944
diff changeset
188 (defcustom dired-omit-files "^\\.?#\\|^\\.$\\|^\\.\\.$"
11500
1bae87dcd653 Change the instructions in the INSTALLATION
Karl Heuer <kwzh@gnu.org>
parents: 11035
diff changeset
189 "*Filenames matching this regexp will not be displayed.
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
190 This only has effect when `dired-omit-files-p' is t. See interactive function
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
191 `dired-omit-toggle' \(\\[dired-omit-toggle]\) and variable
18838
6f9fa4c8e92a (dired-omit-files): Add ".#foo" lock files to omissions.
Richard M. Stallman <rms@gnu.org>
parents: 17944
diff changeset
192 `dired-omit-extensions'. The default is to omit `.', `..', auto-save
6f9fa4c8e92a (dired-omit-files): Add ".#foo" lock files to omissions.
Richard M. Stallman <rms@gnu.org>
parents: 17944
diff changeset
193 files and lock files."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
194 :type 'regexp
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
195 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
197 (defcustom dired-find-subdir nil ; t is pretty near to DWIM...
9707
6349d2705e2a (dired-find-subdir): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 9061
diff changeset
198 "*If non-nil, Dired always finds a directory in a buffer of its own.
6349d2705e2a (dired-find-subdir): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 9061
diff changeset
199 If nil, Dired finds the directory as a subdirectory in some other buffer
6349d2705e2a (dired-find-subdir): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 9061
diff changeset
200 if it is present as one.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
201
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
202 If there are several Dired buffers for a directory, the most recently
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203 used is chosen.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
205 Dired avoids switching to the current buffer, so that if you have
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
206 a normal and a wildcard buffer for the same directory, C-x d RET will
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
207 toggle between those two."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
208 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
209 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210
22688
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
211 (defcustom dired-omit-size-limit 30000
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
212 "*Maximum size for the \"omitting\" feature.
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
213 If nil, there is no maximum size."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
214 :type '(choice (const :tag "no maximum" nil) integer)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
215 :group 'dired-x)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
216
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
217 (defcustom dired-enable-local-variables t
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
218 "*Control use of local-variables lists in dired.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
219 The value can be t, nil or something else.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
220 A value of t means local-variables lists are obeyed;
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221 nil means they are ignored; anything else means query.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
222
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
223 This temporarily overrides the value of `enable-local-variables' when listing
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
224 a directory. See also `dired-local-variables-file'."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
225 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
226 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
228 (defcustom dired-guess-shell-gnutar nil
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229 "*If non-nil, name of GNU tar executable (e.g., \"tar\" or \"gtar\") and `z'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230 switch will be used for compressed or gzip'ed tar files. If no GNU tar, set
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
231 to nil: a pipe using `zcat' or `gunzip -c' will be used."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
232 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
233 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
234
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
235 (defcustom dired-guess-shell-gzip-quiet t
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
236 "*non-nil says pass -q to gzip overriding verbose GZIP environment."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
237 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
238 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
239
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
240 (defcustom dired-guess-shell-znew-switches nil
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
241 "*If non-nil, then string of switches passed to `znew', example: \"-K\""
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
242 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
243 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
244
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
245 (defcustom dired-clean-up-buffers-too t
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
246 "*t says offer to kill buffers visiting files and dirs deleted in dired."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
247 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
248 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
249
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
250 ;;; KEY BINDINGS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
252 (define-key dired-mode-map "\M-o" 'dired-omit-toggle)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253 (define-key dired-mode-map "\M-(" 'dired-mark-sexp)
16499
821597d16a55 (dired-mode-map): Put dired-mark-extension on *.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
254 (define-key dired-mode-map "*(" 'dired-mark-sexp)
821597d16a55 (dired-mode-map): Put dired-mark-extension on *.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
255 (define-key dired-mode-map "*." 'dired-mark-extension)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 (define-key dired-mode-map "\M-!" 'dired-smart-shell-command)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 (define-key dired-mode-map "w" 'dired-copy-filename-as-kill)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258 (define-key dired-mode-map "\M-g" 'dired-goto-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 (define-key dired-mode-map "\M-G" 'dired-goto-subdir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260 (define-key dired-mode-map "F" 'dired-do-find-marked-files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (define-key dired-mode-map "Y" 'dired-do-relsymlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 (define-key dired-mode-map "%Y" 'dired-do-relsymlink-regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 (define-key dired-mode-map "V" 'dired-do-run-mail)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 (if dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 (define-key dired-mode-map "N" 'dired-man))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268 (if dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
269 (define-key dired-mode-map "I" 'dired-info))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
270
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
271 ;;; GLOBAL BINDING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272 (if dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
273 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274 (define-key global-map "\C-x\C-j" 'dired-jump)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 (define-key global-map "\C-x4\C-j" 'dired-jump-other-window)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
276
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
277
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
278 ;;; Install into appropriate hooks.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
279
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
280 (add-hook 'dired-mode-hook 'dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 (add-hook 'dired-after-readin-hook 'dired-omit-expunge)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 (defun dired-extra-startup ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284 "Automatically put on dired-mode-hook to get extra dired features:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 \\<dired-mode-map>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287 \\[dired-do-run-mail]\t-- run mail on folder (see `dired-bind-vm')
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 \\[dired-info]\t-- run info on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 \\[dired-man]\t-- run man on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
290 \\[dired-do-find-marked-files]\t-- visit all marked files simultaneously
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 \\[dired-omit-toggle]\t-- toggle omitting of files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 \\[dired-mark-sexp]\t-- mark by lisp expression
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
294 \t You can feed it to other commands using \\[yank].
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 For more features, see variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 dired-vm-read-only-folders
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 dired-omit-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 dired-omit-extensions
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
306 dired-omit-size-limit
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 dired-find-subdir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 dired-enable-local-variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309 dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 dired-guess-shell-gzip-quiet
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 dired-guess-shell-znew-switches
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 dired-guess-shell-alist-user
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
314 dired-clean-up-buffers-too
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 See also functions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318 dired-flag-extension
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 dired-virtual
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 dired-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321 dired-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
322 dired-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 dired-rmail
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 dired-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 dired-do-find-marked-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 ;; These must be done in each new dired buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 (dired-hack-local-variables)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331 (dired-omit-startup))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
334 ;;; BUFFER CLEANING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
336 ;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 (defun dired-clean-up-after-deletion (fn)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 ;; Clean up after a deleted file or directory FN.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 ;; Remove expanded subdir of deleted dir, if any.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341 (save-excursion (and (cdr dired-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 (dired-goto-subdir fn)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 (dired-kill-subdir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 ;; Offer to kill buffer of deleted file FN.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (if dired-clean-up-buffers-too
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 (let ((buf (get-file-buffer fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 (and buf
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 (funcall (function y-or-n-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 (format "Kill buffer of %s, too? "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 (save-excursion ; you never know where kill-buffer leaves you
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 (kill-buffer buf))))
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
355 (let ((buf-list (dired-buffers-for-dir (expand-file-name fn)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 (buf nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 (and buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 (y-or-n-p (format "Kill dired buffer%s of %s, too? "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 (dired-plural-s (length buf-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (while buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362 (save-excursion (kill-buffer (car buf-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363 (setq buf-list (cdr buf-list)))))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
364 ;; Anything else?
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 )
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
366
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
368 ;;; EXTENSION MARKING FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
370 ;;; Mark files with some extension.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 (defun dired-mark-extension (extension &optional marker-char)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 "Mark all files with a certain extension for use in later commands.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373 A `.' is not automatically prepended to the string entered."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 ;; EXTENSION may also be a list of extensions instead of a single one.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375 ;; Optional MARKER-CHAR is marker to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
376 (interactive "sMarking extension: \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
377 (or (listp extension)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
378 (setq extension (list extension)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 (dired-mark-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (concat ".";; don't match names with nothing but an extension
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 (mapconcat 'regexp-quote extension "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 (defun dired-flag-extension (extension)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 "In dired, flag all files with a certain extension for deletion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388 A `.' is *not* automatically prepended to the string entered."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 (interactive "sFlagging extension: ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 (dired-mark-extension extension dired-del-marker))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392 ;;; Define some unpopular file extensions. Used for cleaning and omitting.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 (defvar dired-patch-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 '(".rej" ".orig")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 "List of extensions of dispensable files created by the `patch' program.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 (defvar dired-tex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 '(".toc" ".log" ".aux");; these are already in completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 "List of extensions of dispensable files created by TeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 (defvar dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 '(".idx" ".lof" ".lot" ".glo")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 "List of extensions of dispensable files created by LaTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 (defvar dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 '(".blg" ".bbl")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 "List of extensions of dispensable files created by BibTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 (defvar dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 '(".cp" ".cps" ".fn" ".fns" ".ky" ".kys" ".pg" ".pgs"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412 ".tp" ".tps" ".vr" ".vrs")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 "List of extensions of dispensable files created by texinfo.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 (defun dired-clean-patch ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 "Flag dispensable files created by patch for deletion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 See variable `dired-patch-unclean-extensions'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 (dired-flag-extension dired-patch-unclean-extensions))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 (defun dired-clean-tex ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
422 "Flag dispensable files created by [La]TeX etc. for deletion.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
423 See variables `dired-texinfo-unclean-extensions',
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
424 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
425 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (dired-flag-extension (append dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 dired-tex-unclean-extensions)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
432 (defun dired-very-clean-tex ()
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
433 "Flag dispensable files created by [La]TeX *and* \".dvi\" for deletion.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
434 See variables `dired-texinfo-unclean-extensions',
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
435 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
436 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 (interactive)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
438 (dired-flag-extension (append dired-texinfo-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
439 dired-latex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
440 dired-bibtex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
441 dired-tex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
442 (list ".dvi"))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
444 ;;; JUMP.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445
7700
311f42f91dbd (dired-jump): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 7189
diff changeset
446 ;;;###autoload
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (defun dired-jump (&optional other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448 "Jump to dired buffer corresponding to current buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449 If in a file, dired the current directory and move to file's line.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 If in dired already, pop up a level and goto old directory's line.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 In case the proper dired file line cannot be found, refresh the dired
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 buffer and try again."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
453 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454 (let* ((file buffer-file-name)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455 (dir (if file (file-name-directory file) default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 (if (eq major-mode 'dired-mode)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (setq dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (dired-up-directory other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (or (dired-goto-file dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
462 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 (dired-insert-subdir (file-name-directory dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 (dired-goto-file dir))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465 (if other-window
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (dired-other-window dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 (dired dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 (if file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 (or (dired-goto-file file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
471 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 (dired-insert-subdir (file-name-directory file))
16558
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
473 (dired-goto-file file))
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
474 ;; Toggle omitting, if it is on, and try again.
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
475 (if dired-omit-files-p
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
476 (progn
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
477 (dired-omit-toggle)
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
478 (dired-goto-file file))))))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
480 (defun dired-jump-other-window ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
481 "Like \\[dired-jump] (dired-jump) but in other window."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 (dired-jump t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
484
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
485 ;;; COPY NAMES OF MARKED FILES INTO KILL-RING.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
486
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487 (defun dired-copy-filename-as-kill (&optional arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
488 "Copy names of marked (or next ARG) files into the kill ring.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
489 The names are separated by a space.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
490 With a zero prefix arg, use the complete pathname of each marked file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491 With \\[universal-argument], use the relative pathname of each marked file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 If on a subdir headerline, use subdirname instead; prefix arg is ignored
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
494 in this case.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
495
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
496 You can then feed the file name(s) to other commands with \\[yank]."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
497 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
498 (let ((string
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499 (or (dired-get-subdir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
500 (mapconcat (function identity)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 (if arg
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502 (cond ((zerop (prefix-numeric-value arg))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 (dired-get-marked-files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
504 ((integerp arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
505 (dired-get-marked-files 'no-dir arg))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
506 (t ; else a raw arg
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
507 (dired-get-marked-files t)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
508 (dired-get-marked-files 'no-dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
509 " "))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
510 (kill-new string)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
511 (message "%s" string)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
512
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
513
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
514 ;;; OMITTING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
515
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
516 ;;; Enhanced omitting of lines from directory listings.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
517 ;;; Marked files are never omitted.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
518
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
519 ;; should probably get rid of this and always use 'no-dir.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
520 ;; sk 28-Aug-1991 09:37
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
521 (defvar dired-omit-localp 'no-dir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
522 "The LOCALP argument dired-omit-expunge passes to dired-get-filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
523 If it is 'no-dir, omitting is much faster, but you can only match
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
524 against the basename of the file. Set it to nil if you need to match the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
525 whole pathname.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
526
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
527 ;; \017=^O for Omit - other packages can chose other control characters.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
528 (defvar dired-omit-marker-char ?\017
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
529 "Temporary marker used by by dired-omit.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
530 Should never be used as marker by the user or other packages.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
531
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
532 (defun dired-omit-startup ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
533 (or (assq 'dired-omit-files-p minor-mode-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
534 (setq minor-mode-alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
535 (append '((dired-omit-files-p " Omit")) minor-mode-alist))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
536
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
537 (defun dired-omit-toggle (&optional flag)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
538 "Toggle omitting files matching `dired-omit-files' and `dired-omit-extensions'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
539 With an arg, and if omitting was off, don't toggle and just mark the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
540 files but don't actually omit them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
541 With an arg, and if omitting was on, turn it off but don't refresh the buffer."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
542 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
543 (if flag
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
544 (if dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
545 (setq dired-omit-files-p (not dired-omit-files-p))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
546 (dired-mark-unmarked-files (dired-omit-regexp) nil nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
547 dired-omit-localp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
548 ;; no FLAG
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
549 (setq dired-omit-files-p (not dired-omit-files-p))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
550 (if (not dired-omit-files-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
551 (revert-buffer)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
552 ;; this will mention how many were omitted:
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
553 (let ((dired-omit-size-limit nil))
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
554 (dired-omit-expunge)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
555
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
556 (defvar dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557 (append completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
558 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
560 dired-texinfo-unclean-extensions)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
561 "If non-nil, a list of extensions \(strings\) to omit from Dired listings.
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
562 Defaults to elements of `completion-ignored-extensions',
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
563 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions', and
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
564 `dired-texinfo-unclean-extensions'.
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
565
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
566 See interactive function `dired-omit-toggle' \(\\[dired-omit-toggle]\) and
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
567 variables `dired-omit-files-p' and `dired-omit-files'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569 (defun dired-omit-expunge (&optional regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
570 "Erases all unmarked files matching REGEXP.
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
571 Does nothing if global variable `dired-omit-files-p' is nil, or if called
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
572 non-interactively and buffer is bigger than `dired-omit-size-limit'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 If REGEXP is nil or not specified, uses `dired-omit-files', and also omits
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 filenames ending in `dired-omit-extensions'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 If REGEXP is the empty string, this function is a no-op.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
576
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577 This functions works by temporarily binding `dired-marker-char' to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 `dired-omit-marker-char' and calling `dired-do-kill-lines'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 (interactive "sOmit files (regexp): ")
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
580 (if (and dired-omit-files-p
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
581 (or (interactive-p)
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
582 (not dired-omit-size-limit)
22688
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
583 (< (buffer-size) dired-omit-size-limit)
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
584 (progn
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
585 (message "Not omitting: directory larger than %d characters."
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
586 dired-omit-size-limit)
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
587 (setq dired-omit-files-p nil)
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
588 nil)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
589 (let ((omit-re (or regexp (dired-omit-regexp)))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
590 (old-modified-p (buffer-modified-p))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
591 count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
592 (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
593 (let ((dired-marker-char dired-omit-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
594 (message "Omitting...")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
595 (if (dired-mark-unmarked-files omit-re nil nil dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
596 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
597 (setq count (dired-do-kill-lines nil "Omitted %d line%s."))
11588
3ddbf9b31cf0 (dired-omit-expunge): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 11500
diff changeset
598 (force-mode-line-update))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
599 (message "(Nothing to omit)"))))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
600 ;; Try to preserve modified state of buffer. So `%*' doesn't appear
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
601 ;; in mode-line of omitted buffers.
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
602 (set-buffer-modified-p (and old-modified-p
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
603 (save-excursion
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
604 (goto-char (point-min))
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
605 (re-search-forward dired-re-mark nil t))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
606 count)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 (defun dired-omit-regexp ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 (concat (if dired-omit-files (concat "\\(" dired-omit-files "\\)") "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610 (if (and dired-omit-files dired-omit-extensions) "\\|" "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
611 (if dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
612 (concat ".";; a non-extension part should exist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
613 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
614 (mapconcat 'regexp-quote dired-omit-extensions "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
615 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
616 "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
617
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618 ;; Returns t if any work was done, nil otherwise.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
619 (defun dired-mark-unmarked-files (regexp msg &optional unflag-p localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
620 "Marks unmarked files matching REGEXP, displaying MSG.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
621 REGEXP is matched against the complete pathname.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
622 Does not re-mark files which already have a mark.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
623 With prefix argument, unflag all those files.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
624 Second optional argument LOCALP is as in `dired-get-filename'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
625 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
626 (let ((dired-marker-char (if unflag-p ?\ dired-marker-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
627 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
628 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629 ;; not already marked
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630 (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631 ;; uninteresting
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 (let ((fn (dired-get-filename localp t)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633 (and fn (string-match regexp fn))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634 msg)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
636 ;;; REDEFINE.
18917
347133072016 (dired-omit-new-add-entry): Take new arg RELATIVE
Richard M. Stallman <rms@gnu.org>
parents: 18838
diff changeset
637 (defun dired-omit-new-add-entry (filename &optional marker-char relative)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
638 ;; This redefines dired-aux.el's dired-add-entry to avoid calling ls for
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
639 ;; files that are going to be omitted anyway.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 (if dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 ;; perhaps return t without calling ls
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642 (let ((omit-re (dired-omit-regexp)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
643 (if (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
644 (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
645 (string-match omit-re
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646 (cond
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
647 ((eq 'no-dir dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648 filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 ((eq t dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650 (dired-make-relative filename))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
651 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
652 (dired-make-absolute
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 filename
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
654 (file-name-directory filename)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
655 ;; if it didn't match, go ahead and add the entry
18917
347133072016 (dired-omit-new-add-entry): Take new arg RELATIVE
Richard M. Stallman <rms@gnu.org>
parents: 18838
diff changeset
656 (dired-omit-old-add-entry filename marker-char relative)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
657 ;; dired-add-entry returns t for success, perhaps we should
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
658 ;; return file-exists-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
659 t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
660 ;; omitting is not turned on at all
18917
347133072016 (dired-omit-new-add-entry): Take new arg RELATIVE
Richard M. Stallman <rms@gnu.org>
parents: 18838
diff changeset
661 (dired-omit-old-add-entry filename marker-char relative)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
663 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
664 ;;; Redefine dired-aux.el's version of `dired-add-entry'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 ;;; Save old defun if not already done:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 (or (fboundp 'dired-omit-old-add-entry)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 (fset 'dired-omit-old-add-entry (symbol-function 'dired-add-entry)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668 ;; Redefine it.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 (fset 'dired-add-entry 'dired-omit-new-add-entry)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
672 ;;; VIRTUAL DIRED MODE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 ;;; For browsing `ls -lR' listings in a dired-like fashion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 (fset 'virtual-dired 'dired-virtual)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 (defun dired-virtual (dirname &optional switches)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 "Put this buffer into Virtual Dired mode.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 In Virtual Dired mode, all commands that do not actually consult the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681 filesystem will work.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 This is useful if you want to peruse and move around in an ls -lR
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 output file, for example one you got from an ftp server. With
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 ange-ftp, you can even dired a directory containing an ls-lR file,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
686 visit that file and turn on virtual dired mode. But don't try to save
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
687 this file, as dired-virtual indents the listing and thus changes the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688 buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
689
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 If you have save a Dired buffer in a file you can use \\[dired-virtual] to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
691 resume it in a later session.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
692
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
693 Type \\<dired-mode-map>\\[revert-buffer] in the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694 Virtual Dired buffer and answer `y' to convert the virtual to a real
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
695 dired buffer again. You don't have to do this, though: you can relist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
696 single subdirs using \\[dired-do-redisplay].
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
697 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
698
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699 ;; DIRNAME is the top level directory of the buffer. It will become
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700 ;; its `default-directory'. If nil, the old value of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 ;; default-directory is used.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
702
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703 ;; Optional SWITCHES are the ls switches to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
705 ;; Shell wildcards will be used if there already is a `wildcard'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
706 ;; line in the buffer (thus it is a saved Dired buffer), but there
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
707 ;; is no other way to get wildcards. Insert a `wildcard' line by
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
708 ;; hand if you want them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
709
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
710 (interactive
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
711 (list (read-string "Virtual Dired directory: " (dired-virtual-guess-dir))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
712 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
713 (or (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
714 ;; if not already indented, do it now:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
715 (indent-region (point-min) (point-max) 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
716 (or dirname (setq dirname default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
717 (setq dirname (expand-file-name (file-name-as-directory dirname)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
718 (setq default-directory dirname) ; contains no wildcards
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
719 (let ((wildcard (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
720 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
721 (forward-line 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
722 (and (looking-at "^ wildcard ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
723 (buffer-substring (match-end 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
724 (progn (end-of-line) (point)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
725 (if wildcard
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 (setq dirname (expand-file-name wildcard default-directory))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 ;; If raw ls listing (not a saved old dired buffer), give it a
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 ;; decent subdir headerline:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 (or (looking-at dired-subdir-regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731 (dired-insert-headerline default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 (dired-mode dirname (or switches dired-listing-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 (setq mode-name "Virtual Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 revert-buffer-function 'dired-virtual-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
735 (set (make-local-variable 'dired-subdir-alist) nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 (dired-build-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
737 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
738 (dired-initial-position dirname))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 (defun dired-virtual-guess-dir ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
742 ;; Guess and return appropriate working directory of this buffer,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
743 ;; assumed to be in Dired or ls -lR format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
744 ;; The guess is based upon buffer contents.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
745 ;; If nothing could be guessed, returns nil.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
746
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
747 (let ((regexp "^\\( \\)?\\([^ \n\r]*\\)\\(:\\)[\n\r]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
748 (subexpr 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750 (cond ((looking-at regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
751 ;; If a saved dired buffer, look to which dir and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752 ;; perhaps wildcard it belongs:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
753 (let ((dir (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 (match-end subexpr))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 (file-name-as-directory dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 ;; Else no match for headerline found. It's a raw ls listing.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 ;; In raw ls listings the directory does not have a headerline
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
758 ;; try parent of first subdir, if any
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 ((re-search-forward regexp nil t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 (file-name-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761 (directory-file-name
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (file-name-as-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
764 (match-end subexpr))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
765 (t ; if all else fails
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766 nil))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
768
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
769 (defun dired-virtual-revert (&optional arg noconfirm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
770 (if (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
771 (y-or-n-p "Cannot revert a Virtual Dired buffer - switch to Real Dired mode? "))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
772 (error "Cannot revert a Virtual Dired buffer.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
773 (setq mode-name "Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
774 revert-buffer-function 'dired-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
775 (revert-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
777 ;; A zero-arg version of dired-virtual.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
778 ;; You need my modified version of set-auto-mode for the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
779 ;; `buffer-contents-mode-alist'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
780 ;; Or you use infer-mode.el and infer-mode-alist, same syntax.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
781 (defun dired-virtual-mode ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
782 "Put current buffer into virtual dired mode (see `dired-virtual').
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
783 Useful on `buffer-contents-mode-alist' (which see) with the regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
785 \"^ \\(/[^ /]+\\)/?+:$\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
786
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
787 to put saved dired buffers automatically into virtual dired mode.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
788
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
789 Also useful for `auto-mode-alist' (which see) like this:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
790
9061
10b791eec6dc (dired-virtual-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 8792
diff changeset
791 \(setq auto-mode-alist (cons '(\"[^/]\\.dired\\'\" . dired-virtual-mode)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
792 auto-mode-alist)\)"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
793 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
794 (dired-virtual (dired-virtual-guess-dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
795
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
796
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
797 ;;; SMART SHELL.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
798
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
799 ;;; An Emacs buffer can have but one working directory, stored in the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
800 ;;; buffer-local variable `default-directory'. A Dired buffer may have
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
801 ;;; several subdirectories inserted, but still has but one working directory:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
802 ;;; that of the top level Dired directory in that buffer. For some commands
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
803 ;;; it is appropriate that they use the current Dired directory instead of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
804 ;;; `default-directory', e.g., `find-file' and `compile'. This is a general
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
805 ;;; mechanism is provided for special handling of the working directory in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
806 ;;; special major modes.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
807
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
808 ;; It's easier to add to this alist than redefine function
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
809 ;; default-directory while keeping the old information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
810 (defconst default-directory-alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
811 '((dired-mode . (if (fboundp 'dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
812 (dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
813 default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
814 "Alist of major modes and their opinion on default-directory, as a
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
815 lisp expression to evaluate. A resulting value of nil is ignored in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
816 favor of default-directory.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
817
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
818 (defun default-directory ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
819 "Usage like variable `default-directory', but knows about the special
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
820 cases in variable `default-directory-alist' (which see)."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
821 (or (eval (cdr (assq major-mode default-directory-alist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
822 default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
823
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
824 (defun dired-smart-shell-command (cmd &optional insert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
825 "Like function `shell-command', but in the current Tree Dired directory."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
826 (interactive "sShell command: \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
827 (let ((default-directory (default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
828 (shell-command cmd insert)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
829
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
830
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
831 ;;; LOCAL VARIABLES FOR DIRED BUFFERS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
832
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
833 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
834 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
835 ;;; * `dired-extra-startup' is part of the `dired-mode-hook'.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
836 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
837 ;;; * `dired-extra-startup' calls `dired-hack-local-variables'
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
838 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
839 ;;; * `dired-hack-local-variables' checks the value of
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
840 ;;; `dired-local-variables-file'
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
841 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
842 ;;; * Check if `dired-local-variables-file' is a non-nil string and is a
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
843 ;;; filename found in the directory of the Dired Buffer being created.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
844 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
845 ;;; * If `dired-local-variables-file' satisfies the above, then temporarily
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
846 ;;; include it in the Dired Buffer at the bottom.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
847 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
848 ;;; * Set `enable-local-variables' temporarily to the user variable
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
849 ;;; `dired-enable-local-variables' and run `hack-local-variables' on the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
850 ;;; Dired Buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
851
13904
d9bf85b9c19e (dired-local-variables-file): Use convert-standard-filename.
Richard M. Stallman <rms@gnu.org>
parents: 13033
diff changeset
852 (defvar dired-local-variables-file (convert-standard-filename ".dired")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
853 "Filename, as string, containing local dired buffer variables to be hacked.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
854 If this file found in current directory, then it will be inserted into dired
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
855 buffer and `hack-local-variables' will be run. See Emacs Info pages for more
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
856 information on local variables. See also `dired-enable-local-variables'.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
857
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
858 (defun dired-hack-local-variables ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
859 "Evaluate local variables in `dired-local-variables-file' for dired buffer."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
860 (if (and dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
861 (stringp dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
862 (file-exists-p dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
863 (let ((opoint (point-max))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
864 buffer-read-only
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
865 ;; In case user has `enable-local-variables' set to nil we
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
866 ;; override it locally with dired's variable.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
867 (enable-local-variables dired-enable-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
868 ;; Insert 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
869 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
870 (goto-char opoint)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
871 (insert "\^L\n")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
872 (insert-file-contents dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
873 ;; Hack 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
874 (let ((buffer-file-name dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
875 (hack-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
876 ;; Make sure that the modeline shows the proper information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
877 (dired-sort-set-modeline)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
878 ;; Delete this stuff: `eobp' is used to find last subdir by dired.el.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
879 (delete-region opoint (point-max)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
880
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
881 (defun dired-omit-here-always ()
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
882 "Creates `dired-local-variables-file' for omitting and reverts directory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
883 Sets dired-omit-file-p to t in a local variables file that is readable by
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
884 dired."
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
885 (interactive)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
886 (if (file-exists-p dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
887 (message "File `./%s' already exists." dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
888
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
889 ;; Create `dired-local-variables-file'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
890 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
891 (set-buffer (get-buffer-create " *dot-dired*"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
892 (erase-buffer)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
893 (insert "Local Variables:\ndired-omit-files-p: t\nEnd:\n")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
894 (write-file dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
895 (kill-buffer (current-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
896
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897 ;; Run extra-hooks and revert directory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
898 (dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
899 (dired-revert)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
900
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
901
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
902 ;;; GUESS SHELL COMMAND.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
903
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
904 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
905 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
906 ;;; `dired-do-shell-command' is bound to `!' by dired.el.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
907 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
908 ;;; * Redefine `dired-do-shell-command' so it calls
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
909 ;;; `dired-guess-shell-command'.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
910 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
911 ;;; * `dired-guess-shell-command' calls `dired-guess-default' with list of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
912 ;;; marked files.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
913 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
914 ;;; * Parse `dired-guess-shell-alist-user' and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
915 ;;; `dired-guess-shell-alist-default' (in that order) for the first REGEXP
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
916 ;;; that matches the first file in the file list.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
917 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
918 ;;; * If the REGEXP matches all the entries of the file list then evaluate
11035
97da4cb32d03 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 9707
diff changeset
919 ;;; COMMAND, which is either a string or a Lisp expression returning a
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
920 ;;; string. COMMAND may be a list of commands.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
921 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
922 ;;; * Return this command to `dired-guess-shell-command' which prompts user
13975
29c3e270ba53 (dired-mark-sexp): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 13904
diff changeset
923 ;;; with it. The list of commands is temporarily put into the history list.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
924 ;;; If a command is used successfully then it is stored permanently in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925 ;;; `dired-shell-command-history'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
926
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
927 ;;; Guess what shell command to apply to a file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
928 (defvar dired-shell-command-history nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
929 "History list for commands that read dired-shell commands.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
930
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
931 ;;; Default list of shell commands.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
932
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
933 ;;; NOTE: Use `gunzip -c' instead of `zcat' on `.gz' files. Some do not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
934 ;;; install GNU zip's version of zcat.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
935
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
936 (defvar dired-guess-shell-alist-default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
937 (list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
938 (list "\\.tar$" '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
939 (concat dired-guess-shell-gnutar " xvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
940 "tar xvf"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
941
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
942 ;; REGEXPS for compressed archives must come before the .Z rule to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
943 ;; be recognized:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
944 (list "\\.tar\\.Z$"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
945 ;; Untar it.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
946 '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
947 (concat dired-guess-shell-gnutar " zxvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
948 (concat "zcat * | tar xvf -"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
949 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
950 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
951 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
952
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
953 ;; gzip'ed archives
23108
0005f4030460 (dired-guess-shell-alist-default): Fix regexp.
Karl Heuer <kwzh@gnu.org>
parents: 22688
diff changeset
954 (list "\\.t\\(ar\\.\\)?gz$"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
955 '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
956 (concat dired-guess-shell-gnutar " zxvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
957 (concat "gunzip -qc * | tar xvf -"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
958 ;; Optional decompression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
959 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q" "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
960
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
961 '("\\.shar.Z$" "zcat * | unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
962 '("\\.shar.g?z$" "gunzip -qc * | unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
963
16959
d04999ad25b9 (dired-guess-shell-alist-default): Make .eps
Richard M. Stallman <rms@gnu.org>
parents: 16617
diff changeset
964 '("\\.e?ps$" "ghostview" "xv" "lpr")
d04999ad25b9 (dired-guess-shell-alist-default): Make .eps
Richard M. Stallman <rms@gnu.org>
parents: 16617
diff changeset
965 (list "\\.e?ps.g?z$" "gunzip -qc * | ghostview -"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
966 ;; Optional decompression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
967 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
16959
d04999ad25b9 (dired-guess-shell-alist-default): Make .eps
Richard M. Stallman <rms@gnu.org>
parents: 16617
diff changeset
968 (list "\\.e?ps.Z$" "zcat * | ghostview -"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
969 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
970 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
971 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
972 '("\\.patch$" "cat * | patch")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
973 '("\\.patch.g?z$" "gunzip -qc * | patch")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
974 (list "\\.patch.Z$" "zcat * | patch"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
975 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
976 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
977 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
978
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
979 '("\\.dvi$" "xdvi" "dvips") ; preview and printing
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
980 '("\\.au$" "play") ; play Sun audiofiles
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
981 '("\\.mpg$" "mpeg_play")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
982 '("\\.uu$" "uudecode") ; for uudecoded files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
983 '("\\.hqx$" "mcvert")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
984 '("\\.sh$" "sh") ; execute shell scripts
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
985 '("\\.xbm$" "bitmap") ; view X11 bitmaps
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
986 '("\\.gp$" "gnuplot")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
987 '("\\.p[bgpn]m$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
988 '("\\.gif$" "xv") ; view gif pictures
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
989 '("\\.tif$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
990 '("\\.jpg$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
991 '("\\.fig$" "xfig") ; edit fig pictures
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
992 '("\\.out$" "xgraph") ; for plotting purposes.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
993 '("\\.tex$" "latex" "tex")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
994 '("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi")
22177
306578297d44 (dired-guess-shell-alist-default): Handle .tgz files. Handle .pdf files.
Richard M. Stallman <rms@gnu.org>
parents: 20990
diff changeset
995 '("\\.pdf$" "acroread") ; edit PDF files
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
996
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
997 ;; Some other popular archivers.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
998 '("\\.zoo$" "zoo x//")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
999 '("\\.zip$" "unzip")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1000 '("\\.lzh$" "lharc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1001 '("\\.arc$" "arc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1002 '("\\.shar$" "unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1003
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1004 ;; Compression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1005 (list "\\.g?z$" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1006 (list "\\.Z$" "uncompress"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1007 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1008 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1009 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1010 )
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1011
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1012 "Default alist used for shell command guessing.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1013 See `dired-guess-shell-alist-user'")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1014
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1015 (defvar dired-guess-shell-alist-user nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1016 "User-defined alist of rules for suggested commands. These rules take
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1017 precedence over the predefined rules in the variable
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1018 `dired-guess-shell-alist-default' (to which they are prepended).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1019
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1020 Each element of this list looks like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1021
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1022 \(REGEXP COMMAND...\)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1023
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1024 where each COMMAND can either be a string or a lisp expression that evaluates
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1025 to a string. If several COMMANDs are given, the first one will be the default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1026 and the rest will be added temporarily to the history and can be retrieved
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1027 with \\[previous-history-element] (M-p) .
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1028
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1029 You can set this variable in your ~/.emacs. For example, to add rules for
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1030 `.foo' and `.bar' files, write
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1031
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1032 \(setq dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1033 (list (list \"\\\\.foo$\" \"FOO-COMMAND\");; fixed rule
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1034 ;; possibly more rules ...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1035 (list \"\\\\.bar$\";; rule with condition test
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1036 '(if condition
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1037 \"BAR-COMMAND-1\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1038 \"BAR-COMMAND-2\")))\)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1039 ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1040
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1041 (defun dired-guess-default (files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1042
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1043 ;; Guess a shell commands for FILES. Return command or list of commands.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1044 ;; See `dired-guess-shell-alist-user'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1045
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1046 (let* ((case-fold-search nil) ; case-sensitive matching
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1047 ;; Prepend the user's alist to the default alist.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1048 (alist (append dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1049 dired-guess-shell-alist-default))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1050 (file (car files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1051 (flist (cdr files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1052 elt regexp cmds)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1053
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1054 ;; Find the first match in the alist for first file in FILES.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1055 (while alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1056 (setq elt (car alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1057 regexp (car elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1058 alist (cdr alist))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1059 (if (string-match regexp file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1060 (setq cmds (cdr elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1061 alist nil)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1062
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1063 ;; If more than one file, see if all of FILES match regular expression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1064 (while (and flist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1065 (string-match regexp (car flist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1066 (setq flist (cdr flist)))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1067
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1068 ;; If flist is still non-nil, then do not guess since this means that not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1069 ;; all the files in FILES were matched by the regexp.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1070 (setq cmds (and (not flist) cmds))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1071
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1072 ;; Return commands or nil if flist is still non-nil.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1073 ;; Evaluate the commands in order that any logical testing will be done.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1074 (cond ((not (cdr cmds))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1075 (eval (car cmds))) ; single command
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1076 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1077 (mapcar (function eval) cmds)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1078
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1079 (defun dired-guess-shell-command (prompt files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1080
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1081 ;; Ask user with PROMPT for a shell command, guessing a default from FILES.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1082
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1083 (let ((default (dired-guess-default files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1084 default-list old-history val (failed t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1085
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1086 (if (null default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1087 ;; Nothing to guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1088 (read-from-minibuffer prompt nil nil nil 'dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1089
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1090 ;; Save current history list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1091 (setq old-history dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1092
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1093 (if (listp default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1094
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1095 ;; More than one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1096 (setq default-list default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1097 default (car default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1098 prompt (concat
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1099 prompt
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1100 (format "{%d guesses} " (length default-list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1101
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1102 ;; Just one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1103 (setq default-list (list default)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1104
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1105 ;; Push all guesses onto history so that they can be retrieved with M-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1106 ;; and put the first guess in the prompt but not in the initial value.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1107 (setq dired-shell-command-history
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1108 (append default-list dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1109 prompt (concat prompt (format "[%s] " default)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1110
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1111 ;; The unwind-protect returns VAL, and we too.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1112 (unwind-protect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1113 ;; BODYFORM
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1114 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1115 (setq val (read-from-minibuffer prompt nil nil nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1116 'dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1117 failed nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1118 ;; If we got a return, then use default.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1119 (if (equal val "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1120 (setq val default))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1121 val)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1122
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1123 ;; UNWINDFORMS
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1124 ;; Undo pushing onto the history list so that an aborted
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1125 ;; command doesn't get the default in the next command.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1126 (setq dired-shell-command-history old-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1127 (if (not failed)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1128 (or (equal val (car-safe dired-shell-command-history))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1129 (setq dired-shell-command-history
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1130 (cons val dired-shell-command-history))))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1131
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1132
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1133 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1134 ;;; Redefine dired-aux.el's version:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1135 (defun dired-read-shell-command (prompt arg files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1136 ;; "Read a dired shell command prompting with PROMPT (using read-string).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1137 ;;ARG is the prefix arg and may be used to indicate in the prompt which
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1138 ;; files are affected.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1139 ;;This is an extra function so that you can redefine it, e.g., to use gmhist."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1140 (dired-mark-pop-up
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1141 nil 'shell files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1142 'dired-guess-shell-command
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1143 (format prompt (dired-mark-prompt arg files)) ; PROMPT
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1144 files)) ; FILES
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1145
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1146
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1147 ;;; RELATIVE SYMBOLIC LINKS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1148
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1149 (defvar dired-keep-marker-relsymlink ?S
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1150 "See variable `dired-keep-marker-move'.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1151
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1152 (defun dired-make-relative-symlink (file1 file2 &optional ok-if-already-exists)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1153 "Three arguments: FILE1 FILE2 &optional OK-IF-ALREADY-EXISTS
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1154 Make a symbolic link (pointing to FILE1) in FILE2.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1155 The link is relative (if possible), for example
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1156
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1157 \"/vol/tex/bin/foo\" \"/vol/local/bin/foo\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1158
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1159 results in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1160
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1161 \"../../tex/bin/foo\" \"/vol/local/bin/foo\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1162 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1163 (interactive "FRelSymLink: \nFRelSymLink %s: \np")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1164 (let (name1 name2 len1 len2 (index 0) sub)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1165 (setq file1 (expand-file-name file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1166 file2 (expand-file-name file2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1167 len1 (length file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1168 len2 (length file2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1169 ;; Find common initial pathname components:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1170 (let (next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1171 (while (and (setq next (string-match "/" file1 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1172 (setq next (1+ next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1173 (< next (min len1 len2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1174 ;; For the comparison, both substrings must end in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1175 ;; `/', so NEXT is *one plus* the result of the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1176 ;; string-match.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1177 ;; E.g., consider the case of linking "/tmp/a/abc"
13975
29c3e270ba53 (dired-mark-sexp): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 13904
diff changeset
1178 ;; to "/tmp/abc" erroneously giving "/tmp/a" instead
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1179 ;; of "/tmp/" as common initial component
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1180 (string-equal (substring file1 0 next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1181 (substring file2 0 next)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1182 (setq index next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1183 (setq name2 file2
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1184 sub (substring file1 0 index)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1185 name1 (substring file1 index)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1186 (if (string-equal sub "/")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1187 ;; No common initial pathname found
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1188 (setq name1 file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1189 ;; Else they have a common parent directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1190 (let ((tem (substring file2 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1191 (start 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1192 (count 0))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1193 ;; Count number of slashes we must compensate for ...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1194 (while (setq start (string-match "/" tem start))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1195 (setq count (1+ count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1196 start (1+ start)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1197 ;; ... and prepend a "../" for each slash found:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1198 (while (> count 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1199 (setq count (1- count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1200 name1 (concat "../" name1)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1201 (make-symbolic-link
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1202 (directory-file-name name1) ; must not link to foo/
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1203 ; (trailing slash!)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1204 name2 ok-if-already-exists)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1205
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1206 (defun dired-do-relsymlink (&optional arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1207 "Relative symlink all marked (or next ARG) files into a directory,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1208 or make a relative symbolic link to the current file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1209 This creates relative symbolic links like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1210
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1211 foo -> ../bar/foo
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1212
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1213 not absolute ones like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1214
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1215 foo -> /ugly/path/that/may/change/any/day/bar/foo"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1216 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1217 (dired-do-create-files 'relsymlink (function dired-make-relative-symlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1218 "RelSymLink" arg dired-keep-marker-relsymlink))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1219
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1220 (defun dired-do-relsymlink-regexp (regexp newname &optional whole-path)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1221 "RelSymlink all marked files containing REGEXP to NEWNAME.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1222 See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1223 for more info."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1224 (interactive (dired-mark-read-regexp "RelSymLink"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1225 (dired-do-create-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1226 (function dired-make-relative-symlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1227 "RelSymLink" nil regexp newname whole-path dired-keep-marker-relsymlink))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1228
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1229
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1230 ;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1231
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1232 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1233 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1234 ;;; `dired-do-find-marked-files' is bound to `F' by dired-x.el.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1235 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1236 ;;; * Use `dired-get-marked-files' to collect the marked files in the current
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1237 ;;; Dired Buffer into a list of filenames `FILE-LIST'.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1238 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1239 ;;; * Pass FILE-LIST to `dired-simultaneous-find-file' all with
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1240 ;;; `dired-do-find-marked-files''s prefix argument NOSELECT.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1241 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1242 ;;; * `dired-simultaneous-find-file' runs through FILE-LIST decrementing the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1243 ;;; list each time.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1244 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1245 ;;; * If NOSELECT is non-nil then just run `find-file-noselect' on each
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1246 ;;; element of FILE-LIST.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1247 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1248 ;;; * If NOSELECT is nil then calculate the `size' of the window for each file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1249 ;;; by dividing the `window-height' by length of FILE-LIST. Thus, `size' is
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1250 ;;; cognizant of the window-configuration.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1251 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1252 ;;; * If `size' is too small abort, otherwise run `find-file' on each element
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1253 ;;; of FILE-LIST giving each a window of height `size'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1254
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1255 (defun dired-do-find-marked-files (&optional noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1256 "Find all marked files displaying all of them simultaneously.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1257 With optional NOSELECT just find files but do not select them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1258
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1259 The current window is split across all files marked, as evenly as possible.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1260 Remaining lines go to bottom-most window. The number of files that can be
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1261 displayed this way is restricted by the height of the current window and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1262 `window-min-height'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1263
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1264 To keep dired buffer displayed, type \\[split-window-vertically] first.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1265 To display just marked files, type \\[delete-other-windows] first."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1266
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1267 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1268 (dired-simultaneous-find-file (dired-get-marked-files) noselect))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1269
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1270 (defun dired-simultaneous-find-file (file-list noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1271
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1272 ;; Visit all files in FILE-LIST and display them simultaneously. The
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1273 ;; current window is split across all files in FILE-LIST, as evenly as
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1274 ;; possible. Remaining lines go to the bottom-most window. The number of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1275 ;; files that can be displayed this way is restricted by the height of the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1276 ;; current window and the variable `window-min-height'. With non-nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1277 ;; NOSELECT the files are merely found but not selected.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1278
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1279 ;; We don't make this function interactive because it is usually too clumsy
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1280 ;; to specify FILE-LIST interactively unless via dired.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1281
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1282 (let (size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1283
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1284 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1285 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1286 (find-file-noselect (car file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1287
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1288 ;; We will have to select the buffer. Calculate and check window size.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1289 (setq size (/ (window-height) (length file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1290 (or (<= window-min-height size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1291 (error "Too many files to visit simultaneously. Try C-u prefix."))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1292 (find-file (car file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1293
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1294 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1295 (setq file-list (cdr file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1296
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1297 (while file-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1298
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1299 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1300 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1301 (find-file-noselect (car file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1302
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1303 ;; Vertically split off a window of desired size. Upper window will
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1304 ;; have SIZE lines. Select lower (larger) window. We split it again.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1305 (select-window (split-window nil size))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1306 (find-file (car file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1307
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1308 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1309 (setq file-list (cdr file-list)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1310
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1311
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1312 ;;; MISCELLANEOUS COMMANDS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1313
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1314 ;;; Run man on files.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1315
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1316 (defun dired-man ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1317 "Run man on this file. Display old buffer if buffer name matches filename.
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1318 Uses ../lisp/man.el of \\[manual-entry] fame."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1319 (interactive)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1320 (require 'man)
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1321 (let ((file (dired-get-filename))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
1322 (manual-program "nroff -man -h"))
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1323 (Man-getpage-in-background file)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1324
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1325 ;;; Run Info on files.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1326
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1327 (defun dired-info ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1328 "Run info on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1329 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1330 (info (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1331
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1332 ;;; Run mail on mail folders.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1333
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1334 ;;; (and (not (fboundp 'vm-visit-folder))
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1335 ;;; (defun vm-visit-folder (file &optional arg)
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1336 ;;; nil))
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1337
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1338 (defun dired-vm (&optional read-only)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1339 "Run VM on this file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1340 With prefix arg, visit folder read-only (this requires at least VM 5).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1341 See also variable `dired-vm-read-only-folders'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1342 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1343 (let ((dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1344 (fil (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1345 ;; take care to supply 2nd arg only if requested - may still run VM 4!
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1346 (cond (read-only (vm-visit-folder fil t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1347 ((eq t dired-vm-read-only-folders) (vm-visit-folder fil t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1348 ((null dired-vm-read-only-folders) (vm-visit-folder fil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1349 (t (vm-visit-folder fil (not (file-writable-p fil)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1350 ;; so that pressing `v' inside VM does prompt within current directory:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1351 (set (make-local-variable 'vm-folder-directory) dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1352
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1353 (defun dired-rmail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1354 "Run RMAIL on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1355 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1356 (rmail (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1357
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1358 (defun dired-do-run-mail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1359 "If `dired-bind-vm' is t, then function `dired-vm', otherwise `dired-rmail'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1360 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1361 (if dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1362 ;; Read mail folder using vm.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1363 (dired-vm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1364 ;; Read mail folder using rmail.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1365 (dired-rmail)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1366
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1367
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1368 ;;; MISCELLANEOUS INTERNAL FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1369
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1370 (or (fboundp 'dired-old-find-buffer-nocreate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1371 (fset 'dired-old-find-buffer-nocreate
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1372 (symbol-function 'dired-find-buffer-nocreate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1373
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1374 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1375 ;;; Redefines dired.el's version of `dired-find-buffer-nocreate'
13033
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 11933
diff changeset
1376 (defun dired-find-buffer-nocreate (dirname &optional mode)
11933
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1377 (if (and dired-find-subdir
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1378 ;; don't try to find a wildcard as a subdirectory
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1379 (string-equal dirname (file-name-directory dirname)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1380 (let* ((cur-buf (current-buffer))
11933
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1381 (buffers (nreverse
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
1382 (dired-buffers-for-dir (expand-file-name dirname))))
11933
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1383 (cur-buf-matches (and (memq cur-buf buffers)
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1384 ;; wildcards must match, too:
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1385 (equal dired-directory dirname))))
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1386 ;; We don't want to switch to the same buffer---
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1387 (setq buffers (delq cur-buf buffers));;need setq with delq
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1388 (or (car (sort buffers (function dired-buffer-more-recently-used-p)))
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1389 ;; ---unless it's the only possibility:
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1390 (and cur-buf-matches cur-buf)))
13033
216edf9576ea (dired-up-directory): Add optional argument `other-window' to obviate
Erik Naggum <erik@naggum.no>
parents: 11933
diff changeset
1391 (dired-old-find-buffer-nocreate dirname mode)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1392
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1393 ;; This should be a builtin
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1394 (defun dired-buffer-more-recently-used-p (buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1395 "Return t if BUFFER1 is more recently used than BUFFER2."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1396 (if (equal buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1397 nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1398 (let ((more-recent nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1399 (list (buffer-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1400 (while (and list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1401 (not (setq more-recent (equal buffer1 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1402 (not (equal buffer2 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1403 (setq list (cdr list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1404 more-recent)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1405
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1406 ;;; Same thing as `dired-buffers-for-dir' of dired.el? - lrd 11/23/93
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1407 ;;; (defun dired-buffers-for-dir-exact (dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1408 ;;; ;; Return a list of buffers that dired DIR (a directory or wildcard)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1409 ;;; ;; at top level, or as subdirectory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1410 ;;; ;; Top level matches must match the wildcard part too, if any.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1411 ;;; ;; The list is in reverse order of buffer creation, most recent last.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1412 ;;; ;; As a side effect, killed dired buffers for DIR are removed from
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1413 ;;; ;; dired-buffers.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1414 ;;; (let ((alist dired-buffers) result elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1415 ;;; (while alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1416 ;;; (setq elt (car alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1417 ;;; alist (cdr alist))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1418 ;;; (let ((buf (cdr elt)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1419 ;;; (if (buffer-name buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1420 ;;; ;; Top level must match exactly against dired-directory in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1421 ;;; ;; case one of them is a wildcard.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1422 ;;; (if (or (equal dir (save-excursion (set-buffer buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1423 ;;; dired-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1424 ;;; (assoc dir (save-excursion (set-buffer buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1425 ;;; dired-subdir-alist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1426 ;;; (setq result (cons buf result)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1427 ;;; ;; else buffer is killed - clean up:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1428 ;;; (setq dired-buffers (delq elt dired-buffers)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1429 ;;; result))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1430
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1431 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1432 ;;; Redefines dired.el's version of `dired-initial-position'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1433 (defun dired-initial-position (dirname)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1434 (end-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1435 (if dired-find-subdir (dired-goto-subdir dirname)) ; new
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1436 (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1437
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1438
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1439 ;; Does anyone use this? - lrd 6/29/93.
20513
6044f0be20eb (dired-mark-sexp): Skip leading space in defining `uid'.
Richard M. Stallman <rms@gnu.org>
parents: 18917
diff changeset
1440 ;; Apparently people do use it. - lrd 12/22/97.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1441 (defun dired-mark-sexp (predicate &optional unflag-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1442 "Mark files for which PREDICATE returns non-nil.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1443 With a prefix arg, unflag those files instead.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1444
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1445 PREDICATE is a lisp expression that can refer to the following symbols:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1446
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1447 inode [integer] the inode of the file (only for ls -i output)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1448 s [integer] the size of the file for ls -s output
13975
29c3e270ba53 (dired-mark-sexp): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 13904
diff changeset
1449 (usually in blocks or, with -k, in KByte)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1450 mode [string] file permission bits, e.g. \"-rw-r--r--\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1451 nlink [integer] number of links to file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1452 uid [string] owner
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1453 gid [string] group (If the gid is not displayed by ls,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1454 this will still be set (to the same as uid))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1455 size [integer] file size in bytes
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1456 time [string] the time that ls displays, e.g. \"Feb 12 14:17\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1457 name [string] the name of the file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1458 sym [string] if file is a symbolic link, the linked-to name, else \"\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1459
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1460 For example, use
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1461
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1462 (equal 0 size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1463
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1464 to mark all zero length files."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1465 ;; Using sym="" instead of nil avoids the trap of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1466 ;; (string-match "foo" sym) into which a user would soon fall.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1467 ;; Give `equal' instead of `=' in the example, as this works on
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1468 ;; integers and strings.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1469 (interactive "xMark if (lisp expr): \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1470 (message "%s" predicate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1471 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1472 inode s mode nlink uid gid size time name sym)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1473 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1474 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1475 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1476 ;; Sets vars
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1477 ;; inode s mode nlink uid gid size time name sym
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1478
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1479 ;; according to current file line. Returns t for success, nil if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1480 ;; there is no file line. Upon success, all variables are set, either
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1481 ;; to nil or the appropriate value, so they need not be initialized.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1482 ;; Moves point within the current line.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1483 (if (dired-move-to-filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1484 (let (pos
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1485 (mode-len 10) ; length of mode string
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1486 ;; like in dired.el, but with subexpressions \1=inode, \2=s:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1487 (dired-re-inode-size "\\s *\\([0-9]*\\)\\s *\\([0-9]*\\) ?"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1488 (beginning-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1489 (forward-char 2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1490 (if (looking-at dired-re-inode-size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1491 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1492 (goto-char (match-end 0))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1493 (setq inode (string-to-int (buffer-substring (match-beginning 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1494 (match-end 1)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1495 s (string-to-int (buffer-substring (match-beginning 2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1496 (match-end 2)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1497 (setq inode nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1498 s nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1499 (setq mode (buffer-substring (point) (+ mode-len (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1500 (forward-char mode-len)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1501 (setq nlink (read (current-buffer)))
20513
6044f0be20eb (dired-mark-sexp): Skip leading space in defining `uid'.
Richard M. Stallman <rms@gnu.org>
parents: 18917
diff changeset
1502 ;; Karsten Wenger <kw@cis.uni-muenchen.de> fixed uid.
6044f0be20eb (dired-mark-sexp): Skip leading space in defining `uid'.
Richard M. Stallman <rms@gnu.org>
parents: 18917
diff changeset
1503 (setq uid (buffer-substring (+ (point) 1) (progn (forward-word 1) (point))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1504 (re-search-forward "\\(Jan\\|Feb\\|Mar\\|Apr\\|May\\|Jun\\|Jul\\|Aug\\|Sep\\|Oct\\|Nov\\|Dec\\)")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1505 (goto-char (match-beginning 1))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1506 (forward-char -1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1507 (setq size (string-to-int (buffer-substring (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1508 (backward-word 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1509 (setq pos (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1510 (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1511 (goto-char pos)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1512 (backward-word 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1513 ;; if no gid is displayed, gid will be set to uid
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1514 ;; but user will then not reference it anyway in PREDICATE.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1515 (setq gid (buffer-substring (save-excursion (forward-word 1) (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1516 (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1517 time (buffer-substring (match-beginning 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1518 (1- (dired-move-to-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1519 name (buffer-substring (point)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1520 (or (dired-move-to-end-of-filename t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1521 (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1522 sym (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1523 (if (looking-at " -> ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1524 (buffer-substring (progn (forward-char 4) (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1525 (progn (end-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1526 "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1527 t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1528 nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1529 (eval predicate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1530 (format "'%s file" predicate))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1531
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1532
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1533 ;;; FIND FILE AT POINT.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1534
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1535 (defvar dired-x-hands-off-my-keys t
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1536 "*t means don't bind `dired-x-find-file' over `find-file' on keyboard.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1537 Similarly for `dired-x-find-file-other-window' over `find-file-other-window'.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1538 If you change this variable after dired-x.el is loaded then do
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1539 \\[dired-x-bind-find-file].")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1540
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1541 ;;; Bind `dired-x-find-file{-other-window}' over wherever
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1542 ;;; `find-file{-other-window}' is bound?
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1543 (defun dired-x-bind-find-file ()
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1544 "Bind `dired-x-find-file' in place of `find-file' \(or reverse\).
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1545 Similarly for `dired-x-find-file-other-window' and `find-file-other-window'.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1546 Binding direction based on `dired-x-hands-off-my-keys'.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1547 This function part of `after-init-hook'."
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1548 (interactive)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1549 (if (interactive-p)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1550 (setq dired-x-hands-off-my-keys
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1551 (not (y-or-n-p "Bind dired-x-find-file over find-file? "))))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1552 (cond ((not dired-x-hands-off-my-keys)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1553 (substitute-key-definition 'find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1554 'dired-x-find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1555 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1556 (substitute-key-definition 'find-file-other-window
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1557 'dired-x-find-file-other-window
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1558 (current-global-map)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1559 (t
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1560 (substitute-key-definition 'dired-x-find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1561 'find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1562 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1563 (substitute-key-definition 'dired-x-find-file-other-window
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1564 'find-file-other-window
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1565 (current-global-map))))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1566 ;; Clear mini-buffer.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1567 (message nil))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1568
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1569 ;;; Now call it so binding is correct and put on `after-init-hook' in case
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1570 ;;; user changes binding.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1571 (dired-x-bind-find-file)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1572 (add-hook 'after-init-hook 'dired-x-bind-find-file)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1573
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1574 (defun dired-x-find-file (filename)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1575 "Edit file FILENAME.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1576 May create a new window, or reuse an existing one.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1577 See the function `display-buffer'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1578
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1579 Identical to `find-file' except when called interactively, with a prefix arg
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1580 \(e.g., \\[universal-argument]\), in which case it guesses filename near
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1581 point. Useful for editing file mentioned in buffer you are viewing, or to
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1582 test if that file exists. Use minibuffer after snatching filename."
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1583 (interactive (list (read-filename-at-point "Find file: ")))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1584 (find-file (expand-file-name filename)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1585
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1586 (defun dired-x-find-file-other-window (filename)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1587 "Edit file FILENAME, in another window.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1588 May create a new window, or reuse an existing one.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1589 See the function `display-buffer'.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1590
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1591 Identical to `find-file-other-window' except when called interactively, with a
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1592 prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1593 near point. Useful for editing file mentioned in buffer you are viewing, or
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1594 to test if that file exists. Use minibuffer after snatching filename."
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1595 (interactive (list (read-filename-at-point "Find file: ")))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1596 (find-file-other-window (expand-file-name filename)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1597
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1598 ;;; Internal functions.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1599 (defun dired-filename-at-point ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1600
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1601 ;; Get the filename closest to point, but do not change position. Has a
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1602 ;; preference for looking backward when not directly on a symbol. Not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1603 ;; perfect - point must be in middle of or end of filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1604
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1605 (let ((filename-chars ".a-zA-Z0-9---_/:$+")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1606 (bol (save-excursion (beginning-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1607 (eol (save-excursion (end-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1608 start end filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1609
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1610 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1611 ;; First see if just past a filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1612 (if (not (eobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1613 (if (looking-at "[] \t\n[{}()]") ; whitespace or some parens
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1614 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1615 (skip-chars-backward " \n\t\r({[]})")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1616 (if (not (bobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1617 (backward-char 1)))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1618
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1619 (if (string-match (concat "[" filename-chars "]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1620 (char-to-string (following-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1621 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1622 (skip-chars-backward filename-chars)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1623 (setq start (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1624 (if (string-match "[/~]" (char-to-string (preceding-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1625 (setq start (1- start)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1626 (skip-chars-forward filename-chars))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1627
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1628 (error "No file found around point!"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1629
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1630 ;; Return string.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1631 (expand-file-name (buffer-substring start (point))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1632
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1633 (defun read-filename-at-point (prompt)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1634 ;;; Returns filename prompting with PROMPT with completion. If
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1635 ;;; `current-prefix-arg' is non-nil, uses name at point as guess.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1636 (if current-prefix-arg
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1637 (let ((guess (dired-filename-at-point)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1638 (read-file-name prompt
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1639 (file-name-directory guess)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1640 guess
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1641 nil (file-name-nondirectory guess)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1642 (read-file-name prompt default-directory)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1643
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1644
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1645 ;;; BUG REPORTS
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1646
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1647 ;;; This section is provided for reports. It uses Barry A. Warsaw's
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1648 ;;; reporter.el which is bundled with GNU Emacs v19.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1649
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1650 (defconst dired-x-version "2.37"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1651 "Revision number of dired-x.el -- dired extra for GNU Emacs v19.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1652 Type \\[dired-x-submit-report] to send a bug report. Available via anonymous
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1653 ftp in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1654
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1655 /roebling.poly.edu:/pub/packages/dired-x.tar.gz")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1656
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1657 (defconst dired-x-help-address "dodd@roebling.poly.edu"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1658 "Address(es) accepting submission of reports on dired-x.el.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1659
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1660 (defconst dired-x-maintainer "Larry"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1661 "First name(s) of people accepting submission of reports on dired-x.el.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1662
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1663 (defconst dired-x-file "dired-x.el"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1664 "Name of file containing emacs lisp code.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1665
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1666 (defconst dired-x-variable-list
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1667 (list
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1668 'dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1669 'dired-vm-read-only-folders
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1670 'dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1671 'dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1672 'dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1673 'dired-find-subdir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1674 'dired-enable-local-variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1675 'dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1676 'dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1677 'dired-guess-shell-gzip-quiet
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1678 'dired-guess-shell-znew-switches
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1679 'dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1680 'dired-clean-up-buffers-too
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1681 'dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1682 'dired-omit-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1683 'dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1684 )
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1685 "List of variables to be appended to reports sent by `dired-x-submit-report.'")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1686
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1687 (defun dired-x-submit-report ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1688 "Submit via reporter.el a bug report on program. Send report on `dired-x-file'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1689 version `dired-x-version,' to `dired-x-maintainer' at address `dired-x-help-address'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1690 listing variables `dired-x-variable-list' in the message."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1691 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1692
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1693 ;; In case we can't find reporter...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1694 (condition-case err
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1695 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1696 ;; Get it if we can.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1697 (require 'reporter)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1698
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1699 (reporter-submit-bug-report
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1700 dired-x-help-address ; address
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1701 (concat dired-x-file " (" dired-x-version ")") ; pkgname
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1702 dired-x-variable-list ; varlist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1703 nil nil ; pre-/post-hooks
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1704 (concat dired-x-maintainer ","))) ; salutation
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1705
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1706 ;; ...fail gracefully.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1707 (error
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1708 (beep)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1709 (message "Sorry, reporter.el not found."))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1710
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1711
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1712 ;; As Barry Warsaw would say: "This might be useful..."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1713 (provide 'dired-x)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1714
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1715 ;;; dired-x.el ends here