annotate lisp/dired-x.el @ 18092:8428d56cd207

(smtpmail-via-smtp): Recognize XVRB as a synonym for VERB and XONE as a synonym for ONEX. (smtpmail-read-response): Add "%s" to `message' calls to avoid problems with percent signs in strings. (smtpmail-read-response): Return all lines of the response text as a list of strings. Formerly only the first line was returned. This is insufficient when one wants to parse e.g. an EHLO response. Ignore responses starting with "0". This is necessary to support the VERB SMTP extension. (smtpmail-via-smtp): Try EHLO and find out which SMTP service extensions the receiving mailer supports. Issue the ONEX and XUSR commands if the corresponding extensions are supported. Issue VERB if supported and `smtpmail-debug-info' is non-nil. Add SIZE attribute to MAIL FROM: command if SIZE extension is supported. Add code that could set the BODY= attribute to MAIL FROM: if the receiving mailer supports 8BITMIME. This is currently disabled, since doing it right might involve adding MIME headers to, and in some cases reencoding, the message.
author Richard M. Stallman <rms@gnu.org>
date Sun, 01 Jun 1997 22:24:22 +0000
parents 0714535d0e28
children 6f9fa4c8e92a
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)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
176 (sexp :tag "non-writable only" if-file-read-only))
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
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
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
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
192 `dired-omit-extensions'. The default is to omit `.', `..', and auto-save
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
193 files."
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
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
211 (defcustom dired-omit-size-limit 20000
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 "T" 'dired-do-toggle)
16499
821597d16a55 (dired-mode-map): Put dired-mark-extension on *.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
258 (define-key dired-mode-map "*t" 'dired-do-toggle)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 (define-key dired-mode-map "w" 'dired-copy-filename-as-kill)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260 (define-key dired-mode-map "\M-g" 'dired-goto-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (define-key dired-mode-map "\M-G" 'dired-goto-subdir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 (define-key dired-mode-map "F" 'dired-do-find-marked-files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 (define-key dired-mode-map "Y" 'dired-do-relsymlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264 (define-key dired-mode-map "%Y" 'dired-do-relsymlink-regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 (define-key dired-mode-map "V" 'dired-do-run-mail)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 (if dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268 (define-key dired-mode-map "N" 'dired-man))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
269
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
270 (if dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271 (define-key dired-mode-map "I" 'dired-info))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
273 ;;; GLOBAL BINDING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274 (if dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
276 (define-key global-map "\C-x\C-j" 'dired-jump)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
277 (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
278
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
279
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
280 ;;; Install into appropriate hooks.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282 (add-hook 'dired-mode-hook 'dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 (add-hook 'dired-after-readin-hook 'dired-omit-expunge)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 (defun dired-extra-startup ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 "Automatically put on dired-mode-hook to get extra dired features:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287 \\<dired-mode-map>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 \\[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
290 \\[dired-info]\t-- run info on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 \\[dired-man]\t-- run man on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 \\[dired-do-find-marked-files]\t-- visit all marked files simultaneously
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 \\[dired-omit-toggle]\t-- toggle omitting of files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
294 \\[dired-do-toggle]\t-- toggle marks
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295 \\[dired-mark-sexp]\t-- mark by lisp expression
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 \\[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
297 \t You can feed it to other commands using \\[yank].
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 For more features, see variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 dired-vm-read-only-folders
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
306 dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 dired-omit-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 dired-omit-extensions
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
309 dired-omit-size-limit
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 dired-find-subdir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 dired-enable-local-variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 dired-guess-shell-gzip-quiet
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315 dired-guess-shell-znew-switches
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 dired-guess-shell-alist-user
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
317 dired-clean-up-buffers-too
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 See also functions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321 dired-flag-extension
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
322 dired-virtual
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 dired-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 dired-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 dired-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 dired-rmail
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327 dired-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 dired-do-find-marked-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 ;; These must be done in each new dired buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 (dired-hack-local-variables)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 (dired-omit-startup))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
337 ;;; BUFFER CLEANING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
339 ;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 (defun dired-clean-up-after-deletion (fn)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 ;; Clean up after a deleted file or directory FN.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 ;; Remove expanded subdir of deleted dir, if any.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 (save-excursion (and (cdr dired-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 (dired-goto-subdir fn)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (dired-kill-subdir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 ;; Offer to kill buffer of deleted file FN.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 (if dired-clean-up-buffers-too
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 (let ((buf (get-file-buffer fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352 (and buf
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 (funcall (function y-or-n-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 (format "Kill buffer of %s, too? "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 (save-excursion ; you never know where kill-buffer leaves you
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 (kill-buffer buf))))
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
358 (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
359 (buf nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 (and buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (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
362 (dired-plural-s (length buf-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 (while buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 (save-excursion (kill-buffer (car buf-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
366 (setq buf-list (cdr buf-list)))))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
367 ;; Anything else?
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 )
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
370
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
371 ;;; EXTENSION MARKING FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
373 ;;; Mark files with some extension.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 (defun dired-mark-extension (extension &optional marker-char)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375 "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
376 A `.' is not automatically prepended to the string entered."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
377 ;; 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
378 ;; Optional MARKER-CHAR is marker to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 (interactive "sMarking extension: \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (or (listp extension)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 (setq extension (list extension)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 (dired-mark-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 (concat ".";; don't match names with nothing but an extension
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 (mapconcat 'regexp-quote extension "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 (defun dired-flag-extension (extension)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 "In dired, flag all files with a certain extension for deletion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 A `.' is *not* automatically prepended to the string entered."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392 (interactive "sFlagging extension: ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 (dired-mark-extension extension dired-del-marker))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 ;;; Define some unpopular file extensions. Used for cleaning and omitting.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (defvar dired-patch-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 '(".rej" ".orig")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 "List of extensions of dispensable files created by the `patch' program.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 (defvar dired-tex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 '(".toc" ".log" ".aux");; these are already in completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 "List of extensions of dispensable files created by TeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 (defvar dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 '(".idx" ".lof" ".lot" ".glo")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 "List of extensions of dispensable files created by LaTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (defvar dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 '(".blg" ".bbl")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 "List of extensions of dispensable files created by BibTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (defvar dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 '(".cp" ".cps" ".fn" ".fns" ".ky" ".kys" ".pg" ".pgs"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 ".tp" ".tps" ".vr" ".vrs")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 "List of extensions of dispensable files created by texinfo.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 (defun dired-clean-patch ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 "Flag dispensable files created by patch for deletion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 See variable `dired-patch-unclean-extensions'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 (dired-flag-extension dired-patch-unclean-extensions))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 (defun dired-clean-tex ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
425 "Flag dispensable files created by [La]TeX etc. for deletion.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
426 See variables `dired-texinfo-unclean-extensions',
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
427 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
428 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 (dired-flag-extension (append dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 dired-tex-unclean-extensions)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
435 (defun dired-very-clean-tex ()
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
436 "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
437 See variables `dired-texinfo-unclean-extensions',
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
438 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
439 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 (interactive)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
441 (dired-flag-extension (append dired-texinfo-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
442 dired-latex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
443 dired-bibtex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
444 dired-tex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
445 (list ".dvi"))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
447 ;;; JUMP.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448
7700
311f42f91dbd (dired-jump): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 7189
diff changeset
449 ;;;###autoload
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 (defun dired-jump (&optional other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 "Jump to dired buffer corresponding to current buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 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
453 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
454 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
455 buffer and try again."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 (let* ((file buffer-file-name)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (dir (if file (file-name-directory file) default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (if (eq major-mode 'dired-mode)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 (setq dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 (dired-up-directory other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 (or (dired-goto-file dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
465 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (dired-insert-subdir (file-name-directory dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 (dired-goto-file dir))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 (if other-window
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 (dired-other-window dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 (dired dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 (if file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 (or (dired-goto-file file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
474 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (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
476 (dired-goto-file file))
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
477 ;; 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
478 (if dired-omit-files-p
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
479 (progn
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
480 (dired-omit-toggle)
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
481 (dired-goto-file file))))))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 (defun dired-jump-other-window ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
484 "Like \\[dired-jump] (dired-jump) but in other window."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 (dired-jump t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
488 ;;; TOGGLE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
489 ;;; Toggle marked files with unmarked files.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
490
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491 (defun dired-do-toggle ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492 "Toggle marks.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 That is, currently marked files become unmarked and vice versa.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
494 Files marked with other flags (such as `D') are not affected.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
495 `.' and `..' are never toggled.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
496 As always, hidden subdirs are not affected."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
497 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
498 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
500 (let (buffer-read-only)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 (while (not (eobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502 (or (dired-between-files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 (looking-at dired-re-dot)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
504 ;; use subst instead of insdel because it does not move
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
505 ;; the gap and thus should be faster and because
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
506 ;; other characters are left alone automatically
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
507 (apply 'subst-char-in-region
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
508 (point) (1+ (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
509 (if (eq ?\040 (following-char)) ; SPC
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
510 (list ?\040 dired-marker-char)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
511 (list dired-marker-char ?\040))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
512 (forward-line 1)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
513
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
514
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
515 ;;; COPY NAMES OF MARKED FILES INTO KILL-RING.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
516
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
517 (defun dired-copy-filename-as-kill (&optional arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
518 "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
519 The names are separated by a space.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
520 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
521 With \\[universal-argument], use the relative pathname of each marked file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
522
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
523 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
524 in this case.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
525
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
526 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
527 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
528 (let ((string
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
529 (or (dired-get-subdir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
530 (mapconcat (function identity)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
531 (if arg
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
532 (cond ((zerop (prefix-numeric-value arg))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
533 (dired-get-marked-files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
534 ((integerp arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
535 (dired-get-marked-files 'no-dir arg))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
536 (t ; else a raw arg
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
537 (dired-get-marked-files t)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
538 (dired-get-marked-files 'no-dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
539 " "))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
540 (kill-new string)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
541 (message "%s" string)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
542
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
543
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
544 ;;; OMITTING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
545
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
546 ;;; Enhanced omitting of lines from directory listings.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
547 ;;; Marked files are never omitted.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
548
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
549 ;; should probably get rid of this and always use 'no-dir.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
550 ;; sk 28-Aug-1991 09:37
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
551 (defvar dired-omit-localp 'no-dir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
552 "The LOCALP argument dired-omit-expunge passes to dired-get-filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
553 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
554 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
555 whole pathname.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
556
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557 ;; \017=^O for Omit - other packages can chose other control characters.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
558 (defvar dired-omit-marker-char ?\017
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 "Temporary marker used by by dired-omit.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
560 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
561
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
562 (defun dired-omit-startup ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
563 (or (assq 'dired-omit-files-p minor-mode-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
564 (setq minor-mode-alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
565 (append '((dired-omit-files-p " Omit")) minor-mode-alist))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567 (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
568 "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
569 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
570 files but don't actually omit them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
571 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
572 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 (if flag
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 (if dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 (setq dired-omit-files-p (not dired-omit-files-p))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
576 (dired-mark-unmarked-files (dired-omit-regexp) nil nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577 dired-omit-localp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 ;; no FLAG
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 (setq dired-omit-files-p (not dired-omit-files-p))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
580 (if (not dired-omit-files-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
581 (revert-buffer)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
582 ;; 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
583 (let ((dired-omit-size-limit nil))
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
584 (dired-omit-expunge)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
585
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
586 (defvar dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
587 (append completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
588 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
589 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
590 dired-texinfo-unclean-extensions)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
591 "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
592 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
593 `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
594 `dired-texinfo-unclean-extensions'.
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
595
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
596 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
597 variables `dired-omit-files-p' and `dired-omit-files'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
598
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
599 (defun dired-omit-expunge (&optional regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
600 "Erases all unmarked files matching REGEXP.
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
601 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
602 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
603 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
604 filenames ending in `dired-omit-extensions'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
605 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
606
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607 This functions works by temporarily binding `dired-marker-char' to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 `dired-omit-marker-char' and calling `dired-do-kill-lines'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 (interactive "sOmit files (regexp): ")
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
610 (if (and dired-omit-files-p
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
611 (or (interactive-p)
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
612 (not dired-omit-size-limit)
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
613 (< (buffer-size) dired-omit-size-limit)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
614 (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
615 (old-modified-p (buffer-modified-p))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
616 count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
617 (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618 (let ((dired-marker-char dired-omit-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
619 (message "Omitting...")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
620 (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
621 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
622 (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
623 (force-mode-line-update))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
624 (message "(Nothing to omit)"))))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
625 ;; 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
626 ;; in mode-line of omitted buffers.
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
627 (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
628 (save-excursion
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
629 (goto-char (point-min))
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
630 (re-search-forward dired-re-mark nil t))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631 count)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633 (defun dired-omit-regexp ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634 (concat (if dired-omit-files (concat "\\(" dired-omit-files "\\)") "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635 (if (and dired-omit-files dired-omit-extensions) "\\|" "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
636 (if dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
637 (concat ".";; a non-extension part should exist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
638 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
639 (mapconcat 'regexp-quote dired-omit-extensions "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
643 ;; Returns t if any work was done, nil otherwise.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
644 (defun dired-mark-unmarked-files (regexp msg &optional unflag-p localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
645 "Marks unmarked files matching REGEXP, displaying MSG.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646 REGEXP is matched against the complete pathname.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
647 Does not re-mark files which already have a mark.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648 With prefix argument, unflag all those files.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 Second optional argument LOCALP is as in `dired-get-filename'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
651 (let ((dired-marker-char (if unflag-p ?\ dired-marker-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
652 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
654 ;; not already marked
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
655 (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
656 ;; uninteresting
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
657 (let ((fn (dired-get-filename localp t)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
658 (and fn (string-match regexp fn))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
659 msg)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
660
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
661 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662 (defun dired-omit-new-add-entry (filename &optional marker-char)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
663 ;; 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
664 ;; files that are going to be omitted anyway.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 (if dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 ;; perhaps return t without calling ls
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 (let ((omit-re (dired-omit-regexp)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668 (if (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 (string-match omit-re
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671 (cond
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672 ((eq 'no-dir dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 ((eq t dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 (dired-make-relative filename))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 (dired-make-absolute
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 filename
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 (file-name-directory filename)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 ;; if it didn't match, go ahead and add the entry
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681 (dired-omit-old-add-entry filename marker-char)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682 ;; dired-add-entry returns t for success, perhaps we should
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 ;; return file-exists-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 ;; omitting is not turned on at all
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
686 (dired-omit-old-add-entry filename marker-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
687
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
688 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
689 ;;; Redefine dired-aux.el's version of `dired-add-entry'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 ;;; Save old defun if not already done:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
691 (or (fboundp 'dired-omit-old-add-entry)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
692 (fset 'dired-omit-old-add-entry (symbol-function 'dired-add-entry)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
693 ;; Redefine it.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694 (fset 'dired-add-entry 'dired-omit-new-add-entry)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
695
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
696
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
697 ;;; VIRTUAL DIRED MODE.
5426
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 ;;; For browsing `ls -lR' listings in a dired-like fashion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 (fset 'virtual-dired 'dired-virtual)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
702 (defun dired-virtual (dirname &optional switches)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703 "Put this buffer into Virtual Dired mode.
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 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
706 filesystem will work.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
707
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
708 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
709 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
710 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
711 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
712 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
713 buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
714
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
715 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
716 resume it in a later session.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
717
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
718 Type \\<dired-mode-map>\\[revert-buffer] in the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
719 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
720 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
721 single subdirs using \\[dired-do-redisplay].
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
722 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
723
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
724 ;; 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
725 ;; its `default-directory'. If nil, the old value of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 ;; default-directory is used.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 ;; Optional SWITCHES are the ls switches to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 ;; Shell wildcards will be used if there already is a `wildcard'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731 ;; 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
732 ;; 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
733 ;; hand if you want them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
735 (interactive
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 (list (read-string "Virtual Dired directory: " (dired-virtual-guess-dir))))
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 (or (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739 ;; if not already indented, do it now:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 (indent-region (point-min) (point-max) 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741 (or dirname (setq dirname default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
742 (setq dirname (expand-file-name (file-name-as-directory dirname)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
743 (setq default-directory dirname) ; contains no wildcards
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
744 (let ((wildcard (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
745 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
746 (forward-line 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
747 (and (looking-at "^ wildcard ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
748 (buffer-substring (match-end 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 (progn (end-of-line) (point)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750 (if wildcard
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
751 (setq dirname (expand-file-name wildcard default-directory))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752 ;; 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
753 ;; decent subdir headerline:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 (or (looking-at dired-subdir-regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 (dired-insert-headerline default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 (dired-mode dirname (or switches dired-listing-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
758 (setq mode-name "Virtual Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 revert-buffer-function 'dired-virtual-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 (set (make-local-variable 'dired-subdir-alist) nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761 (dired-build-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 (dired-initial-position dirname))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
764
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
765 (defun dired-virtual-guess-dir ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767 ;; Guess and return appropriate working directory of this buffer,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
768 ;; assumed to be in Dired or ls -lR format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
769 ;; The guess is based upon buffer contents.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
770 ;; If nothing could be guessed, returns nil.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
771
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
772 (let ((regexp "^\\( \\)?\\([^ \n\r]*\\)\\(:\\)[\n\r]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
773 (subexpr 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
774 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
775 (cond ((looking-at regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776 ;; If a saved dired buffer, look to which dir and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
777 ;; perhaps wildcard it belongs:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
778 (let ((dir (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
779 (match-end subexpr))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
780 (file-name-as-directory dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
781 ;; 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
782 ;; In raw ls listings the directory does not have a headerline
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
783 ;; try parent of first subdir, if any
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784 ((re-search-forward regexp nil t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
785 (file-name-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
786 (directory-file-name
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
787 (file-name-as-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
788 (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
789 (match-end subexpr))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
790 (t ; if all else fails
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
791 nil))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
792
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
793
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
794 (defun dired-virtual-revert (&optional arg noconfirm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
795 (if (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
796 (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
797 (error "Cannot revert a Virtual Dired buffer.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
798 (setq mode-name "Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
799 revert-buffer-function 'dired-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
800 (revert-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
801
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
802 ;; A zero-arg version of dired-virtual.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
803 ;; You need my modified version of set-auto-mode for the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
804 ;; `buffer-contents-mode-alist'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
805 ;; 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
806 (defun dired-virtual-mode ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
807 "Put current buffer into virtual dired mode (see `dired-virtual').
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
808 Useful on `buffer-contents-mode-alist' (which see) with the regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
809
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
810 \"^ \\(/[^ /]+\\)/?+:$\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
811
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
812 to put saved dired buffers automatically into virtual dired mode.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
813
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
814 Also useful for `auto-mode-alist' (which see) like this:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
815
9061
10b791eec6dc (dired-virtual-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 8792
diff changeset
816 \(setq auto-mode-alist (cons '(\"[^/]\\.dired\\'\" . dired-virtual-mode)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
817 auto-mode-alist)\)"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
818 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
819 (dired-virtual (dired-virtual-guess-dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
820
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
821
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
822 ;;; SMART SHELL.
5426
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 ;;; 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
825 ;;; buffer-local variable `default-directory'. A Dired buffer may have
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
826 ;;; several subdirectories inserted, but still has but one working directory:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
827 ;;; 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
828 ;;; 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
829 ;;; `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
830 ;;; mechanism is provided for special handling of the working directory in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
831 ;;; special major modes.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
832
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
833 ;; It's easier to add to this alist than redefine function
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
834 ;; default-directory while keeping the old information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
835 (defconst default-directory-alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
836 '((dired-mode . (if (fboundp 'dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
837 (dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
838 default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
839 "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
840 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
841 favor of default-directory.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
842
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
843 (defun default-directory ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
844 "Usage like variable `default-directory', but knows about the special
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
845 cases in variable `default-directory-alist' (which see)."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
846 (or (eval (cdr (assq major-mode default-directory-alist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
847 default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
848
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
849 (defun dired-smart-shell-command (cmd &optional insert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
850 "Like function `shell-command', but in the current Tree Dired directory."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
851 (interactive "sShell command: \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
852 (let ((default-directory (default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
853 (shell-command cmd insert)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
854
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
855
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
856 ;;; LOCAL VARIABLES FOR DIRED BUFFERS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
857
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
858 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
859 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
860 ;;; * `dired-extra-startup' is part of the `dired-mode-hook'.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
861 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
862 ;;; * `dired-extra-startup' calls `dired-hack-local-variables'
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
863 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
864 ;;; * `dired-hack-local-variables' checks the value of
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
865 ;;; `dired-local-variables-file'
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
866 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
867 ;;; * 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
868 ;;; 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
869 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
870 ;;; * If `dired-local-variables-file' satisfies the above, then temporarily
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
871 ;;; include it in the Dired Buffer at the bottom.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
872 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
873 ;;; * Set `enable-local-variables' temporarily to the user variable
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
874 ;;; `dired-enable-local-variables' and run `hack-local-variables' on the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
875 ;;; Dired Buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
876
13904
d9bf85b9c19e (dired-local-variables-file): Use convert-standard-filename.
Richard M. Stallman <rms@gnu.org>
parents: 13033
diff changeset
877 (defvar dired-local-variables-file (convert-standard-filename ".dired")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
878 "Filename, as string, containing local dired buffer variables to be hacked.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
879 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
880 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
881 information on local variables. See also `dired-enable-local-variables'.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
882
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
883 (defun dired-hack-local-variables ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
884 "Evaluate local variables in `dired-local-variables-file' for dired buffer."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
885 (if (and dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
886 (stringp dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
887 (file-exists-p dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
888 (let ((opoint (point-max))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
889 buffer-read-only
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
890 ;; In case user has `enable-local-variables' set to nil we
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
891 ;; override it locally with dired's variable.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
892 (enable-local-variables dired-enable-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
893 ;; Insert 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
894 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
895 (goto-char opoint)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
896 (insert "\^L\n")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897 (insert-file-contents dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
898 ;; Hack 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
899 (let ((buffer-file-name dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
900 (hack-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
901 ;; Make sure that the modeline shows the proper information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
902 (dired-sort-set-modeline)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
903 ;; 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
904 (delete-region opoint (point-max)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
905
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
906 (defun dired-omit-here-always ()
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
907 "Creates `dired-local-variables-file' for omitting and reverts directory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
908 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
909 dired."
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
910 (interactive)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
911 (if (file-exists-p dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
912 (message "File `./%s' already exists." dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
913
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
914 ;; Create `dired-local-variables-file'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
915 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
916 (set-buffer (get-buffer-create " *dot-dired*"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
917 (erase-buffer)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
918 (insert "Local Variables:\ndired-omit-files-p: t\nEnd:\n")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
919 (write-file dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
920 (kill-buffer (current-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
921
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
922 ;; Run extra-hooks and revert directory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
923 (dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
924 (dired-revert)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
926
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
927 ;;; GUESS SHELL COMMAND.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
928
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
929 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
930 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
931 ;;; `dired-do-shell-command' is bound to `!' by dired.el.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
932 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
933 ;;; * Redefine `dired-do-shell-command' so it calls
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
934 ;;; `dired-guess-shell-command'.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
935 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
936 ;;; * `dired-guess-shell-command' calls `dired-guess-default' with list of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
937 ;;; marked files.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
938 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
939 ;;; * Parse `dired-guess-shell-alist-user' and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
940 ;;; `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
941 ;;; that matches the first file in the file list.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
942 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
943 ;;; * 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
944 ;;; 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
945 ;;; string. COMMAND may be a list of commands.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
946 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
947 ;;; * 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
948 ;;; 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
949 ;;; 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
950 ;;; `dired-shell-command-history'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
951
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
952 ;;; Guess what shell command to apply to a file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
953 (defvar dired-shell-command-history nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
954 "History list for commands that read dired-shell commands.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
955
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
956 ;;; Default list of shell commands.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
957
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
958 ;;; 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
959 ;;; install GNU zip's version of zcat.
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 (defvar dired-guess-shell-alist-default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
962 (list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
963 (list "\\.tar$" '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
964 (concat dired-guess-shell-gnutar " xvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
965 "tar xvf"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
966
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
967 ;; REGEXPS for compressed archives must come before the .Z rule to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
968 ;; be recognized:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
969 (list "\\.tar\\.Z$"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
970 ;; Untar it.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
971 '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
972 (concat dired-guess-shell-gnutar " zxvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
973 (concat "zcat * | tar xvf -"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
974 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
975 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
976 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
977
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
978 ;; gzip'ed archives
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
979 (list "\\.tar\\.g?z$"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
980 '(if dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
981 (concat dired-guess-shell-gnutar " zxvf")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
982 (concat "gunzip -qc * | tar xvf -"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
983 ;; Optional decompression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
984 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q" "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
985
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
986 '("\\.shar.Z$" "zcat * | unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
987 '("\\.shar.g?z$" "gunzip -qc * | unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
988
16959
d04999ad25b9 (dired-guess-shell-alist-default): Make .eps
Richard M. Stallman <rms@gnu.org>
parents: 16617
diff changeset
989 '("\\.e?ps$" "ghostview" "xv" "lpr")
d04999ad25b9 (dired-guess-shell-alist-default): Make .eps
Richard M. Stallman <rms@gnu.org>
parents: 16617
diff changeset
990 (list "\\.e?ps.g?z$" "gunzip -qc * | ghostview -"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
991 ;; Optional decompression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
992 '(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
993 (list "\\.e?ps.Z$" "zcat * | ghostview -"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
994 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
995 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
996 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
997 '("\\.patch$" "cat * | patch")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
998 '("\\.patch.g?z$" "gunzip -qc * | patch")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
999 (list "\\.patch.Z$" "zcat * | patch"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1000 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1001 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1002 " " dired-guess-shell-znew-switches))
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 '("\\.dvi$" "xdvi" "dvips") ; preview and printing
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1005 '("\\.au$" "play") ; play Sun audiofiles
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1006 '("\\.mpg$" "mpeg_play")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1007 '("\\.uu$" "uudecode") ; for uudecoded files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1008 '("\\.hqx$" "mcvert")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1009 '("\\.sh$" "sh") ; execute shell scripts
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1010 '("\\.xbm$" "bitmap") ; view X11 bitmaps
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1011 '("\\.gp$" "gnuplot")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1012 '("\\.p[bgpn]m$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1013 '("\\.gif$" "xv") ; view gif pictures
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1014 '("\\.tif$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1015 '("\\.jpg$" "xv")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1016 '("\\.fig$" "xfig") ; edit fig pictures
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1017 '("\\.out$" "xgraph") ; for plotting purposes.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1018 '("\\.tex$" "latex" "tex")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1019 '("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1020
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1021 ;; Some other popular archivers.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1022 '("\\.zoo$" "zoo x//")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1023 '("\\.zip$" "unzip")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1024 '("\\.lzh$" "lharc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1025 '("\\.arc$" "arc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1026 '("\\.shar$" "unshar")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1027
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1028 ;; Compression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1029 (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
1030 (list "\\.Z$" "uncompress"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1031 ;; Optional conversion to gzip format.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1032 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1033 " " dired-guess-shell-znew-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1034 )
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1035
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1036 "Default alist used for shell command guessing.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1037 See `dired-guess-shell-alist-user'")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1038
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1039 (defvar dired-guess-shell-alist-user nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1040 "User-defined alist of rules for suggested commands. These rules take
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1041 precedence over the predefined rules in the variable
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1042 `dired-guess-shell-alist-default' (to which they are prepended).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1043
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1044 Each element of this list looks like
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 \(REGEXP COMMAND...\)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1047
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1048 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
1049 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
1050 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
1051 with \\[previous-history-element] (M-p) .
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1052
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1053 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
1054 `.foo' and `.bar' files, write
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1055
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1056 \(setq dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1057 (list (list \"\\\\.foo$\" \"FOO-COMMAND\");; fixed rule
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1058 ;; possibly more rules ...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1059 (list \"\\\\.bar$\";; rule with condition test
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1060 '(if condition
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1061 \"BAR-COMMAND-1\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1062 \"BAR-COMMAND-2\")))\)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1063 ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1064
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1065 (defun dired-guess-default (files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1066
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1067 ;; 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
1068 ;; See `dired-guess-shell-alist-user'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1069
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1070 (let* ((case-fold-search nil) ; case-sensitive matching
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1071 ;; Prepend the user's alist to the default alist.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1072 (alist (append dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1073 dired-guess-shell-alist-default))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1074 (file (car files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1075 (flist (cdr files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1076 elt regexp cmds)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1077
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1078 ;; 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
1079 (while alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1080 (setq elt (car alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1081 regexp (car elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1082 alist (cdr alist))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1083 (if (string-match regexp file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1084 (setq cmds (cdr elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1085 alist nil)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1086
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1087 ;; 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
1088 (while (and flist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1089 (string-match regexp (car flist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1090 (setq flist (cdr flist)))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1091
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1092 ;; 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
1093 ;; all the files in FILES were matched by the regexp.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1094 (setq cmds (and (not flist) cmds))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1095
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1096 ;; Return commands or nil if flist is still non-nil.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1097 ;; 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
1098 (cond ((not (cdr cmds))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1099 (eval (car cmds))) ; single command
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1100 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1101 (mapcar (function eval) cmds)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1102
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1103 (defun dired-guess-shell-command (prompt files)
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 ;; 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
1106
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1107 (let ((default (dired-guess-default files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1108 default-list old-history val (failed t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1109
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1110 (if (null default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1111 ;; Nothing to guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1112 (read-from-minibuffer prompt nil nil nil 'dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1113
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1114 ;; Save current history list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1115 (setq old-history dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1116
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1117 (if (listp default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1118
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1119 ;; More than one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1120 (setq default-list default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1121 default (car default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1122 prompt (concat
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1123 prompt
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1124 (format "{%d guesses} " (length default-list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1125
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1126 ;; Just one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1127 (setq default-list (list default)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1128
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1129 ;; 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
1130 ;; 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
1131 (setq dired-shell-command-history
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1132 (append default-list dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1133 prompt (concat prompt (format "[%s] " default)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1134
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1135 ;; The unwind-protect returns VAL, and we too.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1136 (unwind-protect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1137 ;; BODYFORM
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1138 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1139 (setq val (read-from-minibuffer prompt nil nil nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1140 'dired-shell-command-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1141 failed nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1142 ;; If we got a return, then use default.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1143 (if (equal val "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1144 (setq val default))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1145 val)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1146
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1147 ;; UNWINDFORMS
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1148 ;; Undo pushing onto the history list so that an aborted
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1149 ;; command doesn't get the default in the next command.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1150 (setq dired-shell-command-history old-history)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1151 (if (not failed)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1152 (or (equal val (car-safe dired-shell-command-history))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1153 (setq dired-shell-command-history
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1154 (cons val dired-shell-command-history))))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1155
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1156
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1157 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1158 ;;; Redefine dired-aux.el's version:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1159 (defun dired-read-shell-command (prompt arg files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1160 ;; "Read a dired shell command prompting with PROMPT (using read-string).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1161 ;;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
1162 ;; files are affected.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1163 ;;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
1164 (dired-mark-pop-up
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1165 nil 'shell files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1166 'dired-guess-shell-command
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1167 (format prompt (dired-mark-prompt arg files)) ; PROMPT
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1168 files)) ; FILES
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1169
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1170
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1171 ;;; RELATIVE SYMBOLIC LINKS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1172
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1173 (defvar dired-keep-marker-relsymlink ?S
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1174 "See variable `dired-keep-marker-move'.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1175
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1176 (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
1177 "Three arguments: FILE1 FILE2 &optional OK-IF-ALREADY-EXISTS
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1178 Make a symbolic link (pointing to FILE1) in FILE2.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1179 The link is relative (if possible), for example
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1180
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1181 \"/vol/tex/bin/foo\" \"/vol/local/bin/foo\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1182
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1183 results in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1184
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1185 \"../../tex/bin/foo\" \"/vol/local/bin/foo\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1186 "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1187 (interactive "FRelSymLink: \nFRelSymLink %s: \np")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1188 (let (name1 name2 len1 len2 (index 0) sub)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1189 (setq file1 (expand-file-name file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1190 file2 (expand-file-name file2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1191 len1 (length file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1192 len2 (length file2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1193 ;; Find common initial pathname components:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1194 (let (next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1195 (while (and (setq next (string-match "/" file1 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1196 (setq next (1+ next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1197 (< next (min len1 len2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1198 ;; For the comparison, both substrings must end in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1199 ;; `/', so NEXT is *one plus* the result of the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1200 ;; string-match.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1201 ;; 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
1202 ;; to "/tmp/abc" erroneously giving "/tmp/a" instead
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1203 ;; of "/tmp/" as common initial component
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1204 (string-equal (substring file1 0 next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1205 (substring file2 0 next)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1206 (setq index next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1207 (setq name2 file2
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1208 sub (substring file1 0 index)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1209 name1 (substring file1 index)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1210 (if (string-equal sub "/")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1211 ;; No common initial pathname found
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1212 (setq name1 file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1213 ;; Else they have a common parent directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1214 (let ((tem (substring file2 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1215 (start 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1216 (count 0))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1217 ;; Count number of slashes we must compensate for ...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1218 (while (setq start (string-match "/" tem start))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1219 (setq count (1+ count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1220 start (1+ start)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1221 ;; ... and prepend a "../" for each slash found:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1222 (while (> count 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1223 (setq count (1- count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1224 name1 (concat "../" name1)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1225 (make-symbolic-link
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1226 (directory-file-name name1) ; must not link to foo/
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1227 ; (trailing slash!)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1228 name2 ok-if-already-exists)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1229
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1230 (defun dired-do-relsymlink (&optional arg)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1231 "Relative symlink all marked (or next ARG) files into a directory,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1232 or make a relative symbolic link to the current file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1233 This creates relative symbolic links like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1234
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1235 foo -> ../bar/foo
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1236
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1237 not absolute ones like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1238
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1239 foo -> /ugly/path/that/may/change/any/day/bar/foo"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1240 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1241 (dired-do-create-files 'relsymlink (function dired-make-relative-symlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1242 "RelSymLink" arg dired-keep-marker-relsymlink))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1243
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1244 (defun dired-do-relsymlink-regexp (regexp newname &optional whole-path)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1245 "RelSymlink all marked files containing REGEXP to NEWNAME.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1246 See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1247 for more info."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1248 (interactive (dired-mark-read-regexp "RelSymLink"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1249 (dired-do-create-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1250 (function dired-make-relative-symlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1251 "RelSymLink" nil regexp newname whole-path dired-keep-marker-relsymlink))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1252
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1253
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1254 ;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1255
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1256 ;;; Brief Description:
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1257 ;;;
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1258 ;;; `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
1259 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1260 ;;; * 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
1261 ;;; Dired Buffer into a list of filenames `FILE-LIST'.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1262 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1263 ;;; * Pass FILE-LIST to `dired-simultaneous-find-file' all with
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1264 ;;; `dired-do-find-marked-files''s prefix argument NOSELECT.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1265 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1266 ;;; * `dired-simultaneous-find-file' runs through FILE-LIST decrementing the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1267 ;;; list each time.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1268 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1269 ;;; * 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
1270 ;;; element of FILE-LIST.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1271 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1272 ;;; * 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
1273 ;;; 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
1274 ;;; cognizant of the window-configuration.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1275 ;;;
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1276 ;;; * 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
1277 ;;; of FILE-LIST giving each a window of height `size'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1278
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1279 (defun dired-do-find-marked-files (&optional noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1280 "Find all marked files displaying all of them simultaneously.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1281 With optional NOSELECT just find files but do not select them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1282
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1283 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
1284 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
1285 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
1286 `window-min-height'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1287
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1288 To keep dired buffer displayed, type \\[split-window-vertically] first.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1289 To display just marked files, type \\[delete-other-windows] first."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1290
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1291 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1292 (dired-simultaneous-find-file (dired-get-marked-files) noselect))
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 (defun dired-simultaneous-find-file (file-list noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1295
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1296 ;; Visit all files in FILE-LIST and display them simultaneously. The
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1297 ;; 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
1298 ;; 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
1299 ;; 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
1300 ;; current window and the variable `window-min-height'. With non-nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1301 ;; NOSELECT the files are merely found but not selected.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1302
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1303 ;; 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
1304 ;; to specify FILE-LIST interactively unless via dired.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1305
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1306 (let (size)
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 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1309 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1310 (find-file-noselect (car file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1311
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1312 ;; 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
1313 (setq size (/ (window-height) (length file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1314 (or (<= window-min-height size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1315 (error "Too many files to visit simultaneously. Try C-u prefix."))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1316 (find-file (car file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1317
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1318 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1319 (setq file-list (cdr file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1320
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1321 (while file-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1322
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1323 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1324 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1325 (find-file-noselect (car file-list))
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 ;; Vertically split off a window of desired size. Upper window will
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1328 ;; have SIZE lines. Select lower (larger) window. We split it again.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1329 (select-window (split-window nil size))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1330 (find-file (car file-list)))
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 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1333 (setq file-list (cdr file-list)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1334
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1335
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1336 ;;; MISCELLANEOUS COMMANDS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1337
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1338 ;;; Run man on files.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1339
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1340 (defun dired-man ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1341 "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
1342 Uses ../lisp/man.el of \\[manual-entry] fame."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1343 (interactive)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1344 (require 'man)
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1345 (let ((file (dired-get-filename))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
1346 (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
1347 (Man-getpage-in-background file)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1348
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1349 ;;; Run Info on files.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1350
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1351 (defun dired-info ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1352 "Run info on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1353 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1354 (info (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1355
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1356 ;;; Run mail on mail folders.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1357
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1358 ;;; (and (not (fboundp 'vm-visit-folder))
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1359 ;;; (defun vm-visit-folder (file &optional arg)
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1360 ;;; nil))
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1361
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1362 (defun dired-vm (&optional read-only)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1363 "Run VM on this file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1364 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
1365 See also variable `dired-vm-read-only-folders'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1366 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1367 (let ((dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1368 (fil (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1369 ;; 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
1370 (cond (read-only (vm-visit-folder fil t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1371 ((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
1372 ((null dired-vm-read-only-folders) (vm-visit-folder fil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1373 (t (vm-visit-folder fil (not (file-writable-p fil)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1374 ;; so that pressing `v' inside VM does prompt within current directory:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1375 (set (make-local-variable 'vm-folder-directory) dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1376
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1377 (defun dired-rmail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1378 "Run RMAIL on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1379 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1380 (rmail (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1381
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1382 (defun dired-do-run-mail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1383 "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
1384 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1385 (if dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1386 ;; Read mail folder using vm.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1387 (dired-vm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1388 ;; Read mail folder using rmail.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1389 (dired-rmail)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1390
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1391
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1392 ;;; MISCELLANEOUS INTERNAL FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1393
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1394 (or (fboundp 'dired-old-find-buffer-nocreate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1395 (fset 'dired-old-find-buffer-nocreate
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1396 (symbol-function 'dired-find-buffer-nocreate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1397
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1398 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1399 ;;; 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
1400 (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
1401 (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
1402 ;; 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
1403 (string-equal dirname (file-name-directory dirname)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1404 (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
1405 (buffers (nreverse
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
1406 (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
1407 (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
1408 ;; wildcards must match, too:
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1409 (equal dired-directory dirname))))
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1410 ;; 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
1411 (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
1412 (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
1413 ;; ---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
1414 (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
1415 (dired-old-find-buffer-nocreate dirname mode)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1416
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1417 ;; This should be a builtin
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1418 (defun dired-buffer-more-recently-used-p (buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1419 "Return t if BUFFER1 is more recently used than BUFFER2."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1420 (if (equal buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1421 nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1422 (let ((more-recent nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1423 (list (buffer-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1424 (while (and list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1425 (not (setq more-recent (equal buffer1 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1426 (not (equal buffer2 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1427 (setq list (cdr list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1428 more-recent)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1429
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1430 ;;; 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
1431 ;;; (defun dired-buffers-for-dir-exact (dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1432 ;;; ;; 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
1433 ;;; ;; at top level, or as subdirectory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1434 ;;; ;; Top level matches must match the wildcard part too, if any.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1435 ;;; ;; 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
1436 ;;; ;; 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
1437 ;;; ;; dired-buffers.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1438 ;;; (let ((alist dired-buffers) result elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1439 ;;; (while alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1440 ;;; (setq elt (car alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1441 ;;; alist (cdr alist))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1442 ;;; (let ((buf (cdr elt)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1443 ;;; (if (buffer-name buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1444 ;;; ;; Top level must match exactly against dired-directory in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1445 ;;; ;; case one of them is a wildcard.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1446 ;;; (if (or (equal dir (save-excursion (set-buffer buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1447 ;;; dired-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1448 ;;; (assoc dir (save-excursion (set-buffer buf)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1449 ;;; dired-subdir-alist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1450 ;;; (setq result (cons buf result)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1451 ;;; ;; else buffer is killed - clean up:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1452 ;;; (setq dired-buffers (delq elt dired-buffers)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1453 ;;; result))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1454
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1455 ;;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1456 ;;; Redefines dired.el's version of `dired-initial-position'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1457 (defun dired-initial-position (dirname)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1458 (end-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1459 (if dired-find-subdir (dired-goto-subdir dirname)) ; new
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1460 (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
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
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1463 ;; Does anyone use this? - lrd 6/29/93.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1464 (defun dired-mark-sexp (predicate &optional unflag-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1465 "Mark files for which PREDICATE returns non-nil.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1466 With a prefix arg, unflag those files instead.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1467
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1468 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
1469
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1470 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
1471 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
1472 (usually in blocks or, with -k, in KByte)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1473 mode [string] file permission bits, e.g. \"-rw-r--r--\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1474 nlink [integer] number of links to file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1475 uid [string] owner
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1476 gid [string] group (If the gid is not displayed by ls,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1477 this will still be set (to the same as uid))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1478 size [integer] file size in bytes
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1479 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
1480 name [string] the name of the file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1481 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
1482
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1483 For example, use
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1484
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1485 (equal 0 size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1486
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1487 to mark all zero length files."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1488 ;; Using sym="" instead of nil avoids the trap of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1489 ;; (string-match "foo" sym) into which a user would soon fall.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1490 ;; Give `equal' instead of `=' in the example, as this works on
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1491 ;; integers and strings.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1492 (interactive "xMark if (lisp expr): \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1493 (message "%s" predicate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1494 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1495 inode s mode nlink uid gid size time name sym)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1496 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1497 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1498 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1499 ;; Sets vars
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1500 ;; inode s mode nlink uid gid size time name sym
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1501
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1502 ;; according to current file line. Returns t for success, nil if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1503 ;; 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
1504 ;; 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
1505 ;; Moves point within the current line.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1506 (if (dired-move-to-filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1507 (let (pos
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1508 (mode-len 10) ; length of mode string
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1509 ;; like in dired.el, but with subexpressions \1=inode, \2=s:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1510 (dired-re-inode-size "\\s *\\([0-9]*\\)\\s *\\([0-9]*\\) ?"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1511 (beginning-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1512 (forward-char 2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1513 (if (looking-at dired-re-inode-size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1514 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1515 (goto-char (match-end 0))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1516 (setq inode (string-to-int (buffer-substring (match-beginning 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1517 (match-end 1)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1518 s (string-to-int (buffer-substring (match-beginning 2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1519 (match-end 2)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1520 (setq inode nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1521 s nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1522 (setq mode (buffer-substring (point) (+ mode-len (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1523 (forward-char mode-len)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1524 (setq nlink (read (current-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1525 (setq uid (buffer-substring (point) (progn (forward-word 1) (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1526 (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
1527 (goto-char (match-beginning 1))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1528 (forward-char -1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1529 (setq size (string-to-int (buffer-substring (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1530 (backward-word 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1531 (setq pos (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1532 (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1533 (goto-char pos)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1534 (backward-word 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1535 ;; if no gid is displayed, gid will be set to uid
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1536 ;; but user will then not reference it anyway in PREDICATE.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1537 (setq gid (buffer-substring (save-excursion (forward-word 1) (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1538 (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1539 time (buffer-substring (match-beginning 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1540 (1- (dired-move-to-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1541 name (buffer-substring (point)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1542 (or (dired-move-to-end-of-filename t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1543 (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1544 sym (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1545 (if (looking-at " -> ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1546 (buffer-substring (progn (forward-char 4) (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1547 (progn (end-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1548 "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1549 t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1550 nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1551 (eval predicate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1552 (format "'%s file" predicate))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1553
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1554
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1555 ;;; FIND FILE AT POINT.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1556
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1557 (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
1558 "*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
1559 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
1560 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
1561 \\[dired-x-bind-find-file].")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1562
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1563 ;;; 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
1564 ;;; `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
1565 (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
1566 "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
1567 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
1568 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
1569 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
1570 (interactive)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1571 (if (interactive-p)
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1572 (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
1573 (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
1574 (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
1575 (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
1576 '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
1577 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1578 (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
1579 '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
1580 (current-global-map)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1581 (t
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1582 (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
1583 'find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1584 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1585 (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
1586 '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
1587 (current-global-map))))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1588 ;; Clear mini-buffer.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1589 (message nil))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1590
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1591 ;;; 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
1592 ;;; user changes binding.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1593 (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
1594 (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
1595
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1596 (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
1597 "Edit file FILENAME.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1598 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
1599 See the function `display-buffer'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1600
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1601 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
1602 \(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
1603 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
1604 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
1605 (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
1606 (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
1607
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1608 (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
1609 "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
1610 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
1611 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
1612
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1613 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
1614 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
1615 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
1616 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
1617 (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
1618 (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
1619
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1620 ;;; Internal functions.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1621 (defun dired-filename-at-point ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1622
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1623 ;; 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
1624 ;; preference for looking backward when not directly on a symbol. Not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1625 ;; perfect - point must be in middle of or end of filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1626
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1627 (let ((filename-chars ".a-zA-Z0-9---_/:$+")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1628 (bol (save-excursion (beginning-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1629 (eol (save-excursion (end-of-line) (point)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1630 start end filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1631
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1632 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1633 ;; First see if just past a filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1634 (if (not (eobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1635 (if (looking-at "[] \t\n[{}()]") ; whitespace or some parens
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1636 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1637 (skip-chars-backward " \n\t\r({[]})")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1638 (if (not (bobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1639 (backward-char 1)))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1640
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1641 (if (string-match (concat "[" filename-chars "]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1642 (char-to-string (following-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1643 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1644 (skip-chars-backward filename-chars)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1645 (setq start (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1646 (if (string-match "[/~]" (char-to-string (preceding-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1647 (setq start (1- start)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1648 (skip-chars-forward filename-chars))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1649
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1650 (error "No file found around point!"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1651
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1652 ;; Return string.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1653 (expand-file-name (buffer-substring start (point))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1654
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1655 (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
1656 ;;; 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
1657 ;;; `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
1658 (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
1659 (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
1660 (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
1661 (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
1662 guess
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1663 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
1664 (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
1665
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1666
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1667 ;;; BUG REPORTS
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1668
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1669 ;;; 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
1670 ;;; reporter.el which is bundled with GNU Emacs v19.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1671
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1672 (defconst dired-x-version "2.37"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1673 "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
1674 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
1675 ftp in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1676
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1677 /roebling.poly.edu:/pub/packages/dired-x.tar.gz")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1678
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1679 (defconst dired-x-help-address "dodd@roebling.poly.edu"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1680 "Address(es) accepting submission of reports on dired-x.el.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1681
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1682 (defconst dired-x-maintainer "Larry"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1683 "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
1684
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1685 (defconst dired-x-file "dired-x.el"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1686 "Name of file containing emacs lisp code.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1687
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1688 (defconst dired-x-variable-list
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1689 (list
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1690 'dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1691 'dired-vm-read-only-folders
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1692 'dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1693 'dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1694 'dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1695 'dired-find-subdir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1696 'dired-enable-local-variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1697 'dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1698 'dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1699 'dired-guess-shell-gzip-quiet
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1700 'dired-guess-shell-znew-switches
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1701 'dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1702 'dired-clean-up-buffers-too
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1703 'dired-omit-files-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1704 'dired-omit-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1705 'dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1706 )
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1707 "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
1708
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1709 (defun dired-x-submit-report ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1710 "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
1711 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
1712 listing variables `dired-x-variable-list' in the message."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1713 (interactive)
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 ;; In case we can't find reporter...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1716 (condition-case err
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1717 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1718 ;; Get it if we can.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1719 (require 'reporter)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1720
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1721 (reporter-submit-bug-report
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1722 dired-x-help-address ; address
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1723 (concat dired-x-file " (" dired-x-version ")") ; pkgname
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1724 dired-x-variable-list ; varlist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1725 nil nil ; pre-/post-hooks
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1726 (concat dired-x-maintainer ","))) ; salutation
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1727
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1728 ;; ...fail gracefully.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1729 (error
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1730 (beep)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1731 (message "Sorry, reporter.el not found."))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1732
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1733
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1734 ;; As Barry Warsaw would say: "This might be useful..."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1735 (provide 'dired-x)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1736
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1737 ;;; dired-x.el ends here