annotate lisp/dired-x.el @ 46205:6676ac71682b

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