annotate lisp/dired-x.el @ 106768:21fd634f447a

Make line<->pixel_y conversion macros aware of native menu/tool bars. They are placed above the internal border. This supersedes special treatment of native tool bars in the display code. This fixes wrong display position of native menu bars and bogus mouse highlighting of native tool bars, both of which can be found when internal border width is large. Also it fixes wrong flashed part on visible bell with native menu bars. * frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro. (FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo windows above internal border. * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros. (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo windows above internal border. * xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat tool bar windows specially. * xfns.c (x_set_tool_bar_lines): Take account of menu bar height. * xterm.c (x_after_update_window_line): Don't treat tool bar windows specially. (XTflash): Take account of menu bar height. * w32term.c (x_after_update_window_line): Don't treat tool bar windows specially.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Sat, 09 Jan 2010 13:16:32 +0900
parents 97b90713fd52
children 1d1d5d9bd884
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104943
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1 ;;; dired-x.el --- extra Dired functionality
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
97628
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
3 ;; Copyright (C) 1993, 1994, 1997, 2001, 2002, 2003, 2004, 2005, 2006,
100908
a9dc0e7c3f2b Add 2009 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100171
diff changeset
4 ;; 2007, 2008, 2009 Free Software Foundation, Inc.
86529
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
5
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; Lawrence R. Dodd <dodd@roebling.poly.edu>
66469
8c968e06d0c0 Change Maintainer field.
Romain Francoise <romain@orebokech.com>
parents: 66437
diff changeset
8 ;; Maintainer: Romain Francoise <rfrancoise@gnu.org>
39014
7d409173c4ac Add keyword files to get listed in finder.
Gerd Moellmann <gerd@gnu.org>
parents: 35094
diff changeset
9 ;; Keywords: dired extensions files
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; This file is part of GNU Emacs.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94557
diff changeset
13 ;; GNU Emacs is free software: you can redistribute it and/or modify
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94557
diff changeset
15 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94557
diff changeset
16 ;; (at your option) any later version.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; 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
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; GNU General Public License for more details.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94557
diff changeset
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
26 ;;; Commentary:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
28 ;; 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
29 ;; 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
30 ;; 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
31 ;; 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
32
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49485
diff changeset
33 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
34 ;; Please, PLEASE, *PLEASE* see the info pages.
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49485
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 ;; 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
38
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
39 ;; INSTALLATION: In your ~/.emacs,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
40 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
41 ;; (add-hook 'dired-load-hook
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
42 ;; (function (lambda ()
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
43 ;; (load "dired-x")
77627
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
44 ;; ;; Set global variables here. For example:
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
45 ;; ;; (setq dired-guess-shell-gnutar "gtar")
77627
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
46 ;; )))
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
47 ;; (add-hook 'dired-mode-hook
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
48 ;; (function (lambda ()
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
49 ;; ;; Set buffer-local variables here. For example:
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
50 ;; ;; (dired-omit-mode 1)
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
51 ;; )))
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
52 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
53 ;; 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
54 ;; 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
55
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
56 ;; *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
57
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
58 ;; User defined variables:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
59 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
60 ;; dired-bind-vm
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
61 ;; dired-vm-read-only-folders
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
62 ;; dired-bind-jump
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
63 ;; dired-bind-info
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
64 ;; dired-bind-man
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
65 ;; dired-x-hands-off-my-keys
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
66 ;; dired-find-subdir
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
67 ;; dired-enable-local-variables
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
68 ;; dired-local-variables-file
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
69 ;; dired-guess-shell-gnutar
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
70 ;; dired-guess-shell-gzip-quiet
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
71 ;; dired-guess-shell-znew-switches
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
72 ;; dired-guess-shell-alist-user
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
73 ;; dired-clean-up-buffers-too
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
74 ;; dired-omit-mode
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
75 ;; dired-omit-files
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
76 ;; dired-omit-extensions
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
77 ;; dired-omit-size-limit
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
78 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
79 ;; 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
80 ;; 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
81 ;; the info pages for more details.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
83 ;; 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
84 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
85 ;; Function Found in this file of GNU Emacs
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
86 ;; -------- -------------------------------
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
87 ;; dired-clean-up-after-deletion ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
88 ;; dired-find-buffer-nocreate ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
89 ;; dired-initial-position ../lisp/dired.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
90 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
91 ;; dired-add-entry ../lisp/dired-aux.el
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
92 ;; dired-read-shell-command ../lisp/dired-aux.el
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
95 ;;; Code:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
97 ;; LOAD.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
99 ;; 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
100 ;; 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
101 ;; (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
102
7839
eb9d06dba04b Require dired and dired-aux in the standard way.
Richard M. Stallman <rms@gnu.org>
parents: 7700
diff changeset
103 (require 'dired)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
104
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
105 ;; 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
106 ;; load dired stuff of GNU Emacs.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107
7839
eb9d06dba04b Require dired and dired-aux in the standard way.
Richard M. Stallman <rms@gnu.org>
parents: 7700
diff changeset
108 (require 'dired-aux)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
109
65288
12202e62be76 (vm-folder-directory): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
110 (defvar vm-folder-directory)
66868
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
111 (eval-when-compile (require 'man))
65288
12202e62be76 (vm-folder-directory): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
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
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
125 "Non-nil means \"V\" runs `dired-vm', otherwise \"V\" runs `dired-rmail'.
101541
70c1bf2f6e38 (dired-bind-vm): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
126
70c1bf2f6e38 (dired-bind-vm): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
127 RMAIL files in the old Babyl format (used before before Emacs 23.1)
70c1bf2f6e38 (dired-bind-vm): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
128 contain \"-*- rmail -*-\" at the top, so `dired-find-file'
70c1bf2f6e38 (dired-bind-vm): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
129 will run `rmail' on these files. New RMAIL files use the standard
70c1bf2f6e38 (dired-bind-vm): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
130 mbox format, and so cannot be distinguished in this way."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
131 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
132 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
134 (defcustom dired-bind-jump t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
135 "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
136 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
137 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
139 (defcustom dired-bind-man t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
140 "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
141 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
142 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
144 (defcustom dired-bind-info t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
145 "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
146 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
147 :group 'dired-keys)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
149 (defcustom dired-vm-read-only-folders nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
150 "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
151 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
152 files not writable by you are visited read-only.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
154 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
155 :type '(choice (const :tag "off" nil)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
156 (const :tag "on" t)
22574
3c7216baafaf (dired-vm-read-only-folders): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents: 22177
diff changeset
157 (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
158 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
160 (define-minor-mode dired-omit-mode
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
161 "Toggle Dired-Omit mode.
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
162 With numeric ARG, enable Dired-Omit mode if ARG is positive, disable
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
163 otherwise. Enabling and disabling is buffer-local.
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
164 If enabled, \"uninteresting\" files are not listed.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 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
166 plus those ending with extensions in `dired-omit-extensions'."
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
167 :group 'dired-x
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
168 (if dired-omit-mode
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
169 ;; This will mention how many lines were omitted:
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
170 (let ((dired-omit-size-limit nil)) (dired-omit-expunge))
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
171 (revert-buffer)))
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
172
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
173 ;; For backward compatibility
94148
be53eb871301 (dired-omit-files-p): Use `define-obsolete-variable-alias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
174 (define-obsolete-variable-alias 'dired-omit-files-p 'dired-omit-mode "22.1")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175
18838
6f9fa4c8e92a (dired-omit-files): Add ".#foo" lock files to omissions.
Richard M. Stallman <rms@gnu.org>
parents: 17944
diff changeset
176 (defcustom dired-omit-files "^\\.?#\\|^\\.$\\|^\\.\\.$"
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
177 "Filenames matching this regexp will not be displayed.
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
178 This only has effect when `dired-omit-mode' is t. See interactive function
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
179 `dired-omit-mode' \(\\[dired-omit-mode]\) and variable
18838
6f9fa4c8e92a (dired-omit-files): Add ".#foo" lock files to omissions.
Richard M. Stallman <rms@gnu.org>
parents: 17944
diff changeset
180 `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
181 files and lock files."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
182 :type 'regexp
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
183 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
185 (defcustom dired-find-subdir nil ; t is pretty near to DWIM...
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
186 "If non-nil, Dired always finds a directory in a buffer of its own.
9707
6349d2705e2a (dired-find-subdir): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 9061
diff changeset
187 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
188 if it is present as one.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
190 If there are several dired buffers for a directory, the most recently
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191 used is chosen.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 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
194 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
195 toggle between those two."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
196 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
197 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198
22688
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
199 (defcustom dired-omit-size-limit 30000
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
200 "Maximum size for the \"omitting\" feature.
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
201 If nil, there is no maximum size."
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
202 :type '(choice (const :tag "no maximum" nil) integer)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
203 :group 'dired-x)
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
204
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
205 (defcustom dired-enable-local-variables t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
206 "Control use of local-variables lists in Dired.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
207 The value can be t, nil or something else.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208 A value of t means local-variables lists are obeyed;
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209 nil means they are ignored; anything else means query.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
211 This temporarily overrides the value of `enable-local-variables' when
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
212 listing a directory. See also `dired-local-variables-file'."
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
213 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
214 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215
70664
002eb5def536 (dired-guess-shell-gnutar): On GNU and GNU/Linux
Romain Francoise <romain@orebokech.com>
parents: 68748
diff changeset
216 (defcustom dired-guess-shell-gnutar (when (or (eq system-type 'gnu)
002eb5def536 (dired-guess-shell-gnutar): On GNU and GNU/Linux
Romain Francoise <romain@orebokech.com>
parents: 68748
diff changeset
217 (eq system-type 'gnu/linux))
002eb5def536 (dired-guess-shell-gnutar): On GNU and GNU/Linux
Romain Francoise <romain@orebokech.com>
parents: 68748
diff changeset
218 "tar")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
219 "If non-nil, name of GNU tar executable.
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
220 \(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
221 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
222 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
223 :type '(choice (const :tag "Not GNU tar" nil)
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
224 (string :tag "Command name"))
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
225 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
226
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
227 (defcustom dired-guess-shell-gzip-quiet t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
228 "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
229 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
230 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
231
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
232 (defcustom dired-guess-shell-znew-switches nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
233 "If non-nil, then string of switches passed to `znew', example: \"-K\"."
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
234 :type '(choice (const :tag "None" nil)
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
235 (string :tag "Switches"))
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
236 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
237
17944
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
238 (defcustom dired-clean-up-buffers-too t
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 97628
diff changeset
239 "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
240 :type 'boolean
0714535d0e28 Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16959
diff changeset
241 :group 'dired-x)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
242
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
243 ;;; KEY BINDINGS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
244
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
245 (define-key dired-mode-map "\M-o" 'dired-omit-mode)
56060
7296de1b215f (dired-mark-omitted): Bind to "*O".
Lars Hansen <larsh@soem.dk>
parents: 55927
diff changeset
246 (define-key dired-mode-map "*O" 'dired-mark-omitted)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
247 (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
248 (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
249 (define-key dired-mode-map "*." 'dired-mark-extension)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
250 (define-key dired-mode-map "\M-!" 'dired-smart-shell-command)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251 (define-key dired-mode-map "w" 'dired-copy-filename-as-kill)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
252 (define-key dired-mode-map "\M-G" 'dired-goto-subdir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253 (define-key dired-mode-map "F" 'dired-do-find-marked-files)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
254 (define-key dired-mode-map "Y" 'dired-do-relsymlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
255 (define-key dired-mode-map "%Y" 'dired-do-relsymlink-regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 (define-key dired-mode-map "V" 'dired-do-run-mail)
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 (if dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 (define-key dired-mode-map "N" 'dired-man))
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 (if dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 (define-key dired-mode-map "I" 'dired-info))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263
66659
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
264 ;;; MENU BINDINGS
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
265
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
266 (let ((menu-bar (lookup-key dired-mode-map [menu-bar])))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
267 (let ((menu (lookup-key menu-bar [operate])))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
268 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
269 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
270 [find-files]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
271 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
272 "Find files"
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
273 dired-do-find-marked-files
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
274 :help "Find current or marked files")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
275 'delete)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
276 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
277 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
278 [relsymlink]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
279 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
280 "Relative symlink to..."
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
281 dired-do-relsymlink
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
282 :visible (fboundp 'make-symbolic-link)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
283 :help "Make relative symbolic links for current or marked files")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
284 'symlink))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
285 (let ((menu (lookup-key menu-bar [mark])))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
286 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
287 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
288 [flag-extension]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
289 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
290 "Flag extension..."
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
291 dired-flag-extension
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
292 :help "Flag files with a certain extension for deletion")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
293 'garbage-files)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
294 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
295 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
296 [mark-extension]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
297 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
298 "Mark extension..."
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
299 dired-mark-extension
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
300 :help "Mark files with a certain extension")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
301 'symlinks)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
302 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
303 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
304 [mark-omitted]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
305 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
306 "Mark omitted"
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
307 dired-mark-omitted
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
308 :help "Mark files matching `dired-omit-files' and `dired-omit-extensions'")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
309 'mark-extension))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
310 (let ((menu (lookup-key menu-bar [regexp])))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
311 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
312 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
313 [relsymlink-regexp]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
314 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
315 "Relative symlink..."
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
316 dired-do-relsymlink-regexp
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
317 :visible (fboundp 'make-symbolic-link)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
318 :help "Make relative symbolic links for files matching regexp")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
319 'symlink))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
320 (let ((menu (lookup-key menu-bar [immediate])))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
321 (define-key-after
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
322 menu
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
323 [omit-mode]
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
324 '(menu-item
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
325 "Omit mode" dired-omit-mode
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
326 :button (:toggle . dired-omit-mode)
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
327 :help "Enable or disable omitting \"uninteresting\" files")
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
328 'dashes)))
ca5365d36237 Add menu bindings for dired-do-find-marked-files,
Lars Hansen <larsh@soem.dk>
parents: 66469
diff changeset
329
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
330 ;;; GLOBAL BINDING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331 (if dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 (define-key global-map "\C-x\C-j" 'dired-jump)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 (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
335
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
337 ;; Install into appropriate hooks.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 (add-hook 'dired-mode-hook 'dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 (add-hook 'dired-after-readin-hook 'dired-omit-expunge)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 (defun dired-extra-startup ()
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
343 "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
344 \\<dired-mode-map>
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 \\[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
346 \\[dired-info]\t-- run info on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 \\[dired-man]\t-- run man on file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 \\[dired-do-find-marked-files]\t-- visit all marked files simultaneously
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
349 \\[dired-omit-mode]\t-- toggle omitting of files
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
350 \\[dired-mark-sexp]\t-- mark by Lisp expression
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
351 \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring;
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
352 \t you can feed it to other commands using \\[yank]
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 For more features, see variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
356 `dired-bind-vm'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
357 `dired-bind-jump'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
358 `dired-bind-info'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
359 `dired-bind-man'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
360 `dired-vm-read-only-folders'
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
361 `dired-omit-mode'
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
362 `dired-omit-files'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
363 `dired-omit-extensions'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
364 `dired-omit-size-limit'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
365 `dired-find-subdir'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
366 `dired-enable-local-variables'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
367 `dired-local-variables-file'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
368 `dired-guess-shell-gnutar'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
369 `dired-guess-shell-gzip-quiet'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
370 `dired-guess-shell-znew-switches'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
371 `dired-guess-shell-alist-user'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
372 `dired-clean-up-buffers-too'
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 See also functions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
376 `dired-flag-extension'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
377 `dired-virtual'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
378 `dired-jump'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
379 `dired-man'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
380 `dired-vm'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
381 `dired-rmail'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
382 `dired-info'
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
383 `dired-do-find-marked-files'"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 ;; These must be done in each new dired buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 (dired-hack-local-variables)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388 (dired-omit-startup))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
391 ;;; BUFFER CLEANING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
393 ;; REDEFINE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 (defun dired-clean-up-after-deletion (fn)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
395 "Clean up after a deleted file or directory FN.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
396 Remove expanded subdir of deleted dir, if any."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (save-excursion (and (cdr dired-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 (dired-goto-subdir fn)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 (dired-kill-subdir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 ;; Offer to kill buffer of deleted file FN.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 (if dired-clean-up-buffers-too
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 (let ((buf (get-file-buffer fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 (and buf
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 (funcall (function y-or-n-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 (format "Kill buffer of %s, too? "
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (save-excursion ; you never know where kill-buffer leaves you
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 (kill-buffer buf))))
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
411 (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
412 (buf nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (and buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 (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
415 (dired-plural-s (length buf-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 (file-name-nondirectory fn)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 (while buf-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 (save-excursion (kill-buffer (car buf-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 (setq buf-list (cdr buf-list)))))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
420 ;; Anything else?
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 )
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
424 ;;; EXTENSION MARKING FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
426 ;; Mark files with some extension.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (defun dired-mark-extension (extension &optional marker-char)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
428 "Mark all files with a certain EXTENSION for use in later commands.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
429 A `.' is *not* automatically prepended to the string entered."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 ;; 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
431 ;; Optional MARKER-CHAR is marker to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 (interactive "sMarking extension: \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 (or (listp extension)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434 (setq extension (list extension)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (dired-mark-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 (concat ".";; don't match names with nothing but an extension
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
438 (mapconcat 'regexp-quote extension "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 (defun dired-flag-extension (extension)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
443 "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
444 A `.' is *not* automatically prepended to the string entered."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 (interactive "sFlagging extension: ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (dired-mark-extension extension dired-del-marker))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
448 ;; Define some unpopular file extensions. Used for cleaning and omitting.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 (defvar dired-patch-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 '(".rej" ".orig")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 "List of extensions of dispensable files created by the `patch' program.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
453
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454 (defvar dired-tex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455 '(".toc" ".log" ".aux");; these are already in completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 "List of extensions of dispensable files created by TeX.")
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 (defvar dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 '(".idx" ".lof" ".lot" ".glo")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 "List of extensions of dispensable files created by LaTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 (defvar dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 '(".blg" ".bbl")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 "List of extensions of dispensable files created by BibTeX.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (defvar dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 '(".cp" ".cps" ".fn" ".fns" ".ky" ".kys" ".pg" ".pgs"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 ".tp" ".tps" ".vr" ".vrs")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 "List of extensions of dispensable files created by texinfo.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 (defun dired-clean-patch ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 "Flag dispensable files created by patch for deletion.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 See variable `dired-patch-unclean-extensions'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (dired-flag-extension dired-patch-unclean-extensions))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
476
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 (defun dired-clean-tex ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
478 "Flag dispensable files created by [La]TeX etc. for deletion.
52646
7aed5ac1aaa2 (dired-clean-tex): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 52401
diff changeset
479 See variables `dired-tex-unclean-extensions',
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
480 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
481 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 (dired-flag-extension (append dired-texinfo-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
484 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 dired-tex-unclean-extensions)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
488 (defun dired-very-clean-tex ()
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
489 "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
490 See variables `dired-texinfo-unclean-extensions',
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
491 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions' and
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
492 `dired-texinfo-unclean-extensions'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 (interactive)
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
494 (dired-flag-extension (append dired-texinfo-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
495 dired-latex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
496 dired-bibtex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
497 dired-tex-unclean-extensions
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
498 (list ".dvi"))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
500 ;;; JUMP.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501
7700
311f42f91dbd (dired-jump): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 7189
diff changeset
502 ;;;###autoload
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 (defun dired-jump (&optional other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
504 "Jump to dired buffer corresponding to current buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
505 If in a file, dired the current directory and move to file's line.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
506 If in Dired already, pop up a level and goto old directory's line.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
507 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
508 buffer and try again."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
509 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
510 (let* ((file buffer-file-name)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
511 (dir (if file (file-name-directory file) default-directory)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
512 (if (eq major-mode 'dired-mode)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
513 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
514 (setq dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
515 (dired-up-directory other-window)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
516 (or (dired-goto-file dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
517 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
518 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
519 (dired-insert-subdir (file-name-directory dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
520 (dired-goto-file dir))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
521 (if other-window
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
522 (dired-other-window dir)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
523 (dired dir))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
524 (if file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
525 (or (dired-goto-file file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
526 ;; refresh and try again
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
527 (progn
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
528 (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
529 (dired-goto-file file))
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
530 ;; Toggle omitting, if it is on, and try again.
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
531 (if dired-omit-mode
16558
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
532 (progn
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
533 (dired-omit-mode)
16558
40a1e1451821 (dired-jump): Never turn omitting *on*.
Richard M. Stallman <rms@gnu.org>
parents: 16499
diff changeset
534 (dired-goto-file file))))))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
535
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
536 (defun dired-jump-other-window ()
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
537 "Like \\[dired-jump] (`dired-jump') but in other window."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
538 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
539 (dired-jump t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
540
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
541 ;;; OMITTING.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
542
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
543 ;; Enhanced omitting of lines from directory listings.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
544 ;; Marked files are never omitted.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
545
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
546 ;; should probably get rid of this and always use 'no-dir.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
547 ;; sk 28-Aug-1991 09:37
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
548 (defvar dired-omit-localp 'no-dir
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
549 "The LOCALP argument `dired-omit-expunge' passes to `dired-get-filename'.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
550 If it is `no-dir', omitting is much faster, but you can only match
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 42559
diff changeset
551 against the non-directory part of the file name. Set it to nil if you
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 42559
diff changeset
552 need to match the entire file name.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
553
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
554 ;; \017=^O for Omit - other packages can chose other control characters.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
555 (defvar dired-omit-marker-char ?\017
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
556 "Temporary marker used by Dired-Omit.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557 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
558
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 (defun dired-omit-startup ()
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
560 (or (assq 'dired-omit-mode minor-mode-alist)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
561 (setq minor-mode-alist
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
562 (append '((dired-omit-mode
40438
3b2e61109dc2 (dired-omit-startup): Show ``Omit'' only in Dired
Gerd Moellmann <gerd@gnu.org>
parents: 39014
diff changeset
563 (: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
564 " Omit" ""))))
3b2e61109dc2 (dired-omit-startup): Show ``Omit'' only in Dired
Gerd Moellmann <gerd@gnu.org>
parents: 39014
diff changeset
565 minor-mode-alist))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
567 (defun dired-mark-omitted ()
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
568 "Mark files matching `dired-omit-files' and `dired-omit-extensions'."
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
569 (interactive)
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
570 (let ((dired-omit-mode nil)) (revert-buffer)) ;; Show omitted files
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
571 (dired-mark-unmarked-files (dired-omit-regexp) nil nil dired-omit-localp))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
572
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 (defvar dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 (append completion-ignored-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 dired-latex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
576 dired-bibtex-unclean-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577 dired-texinfo-unclean-extensions)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
578 "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
579 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
580 `dired-latex-unclean-extensions', `dired-bibtex-unclean-extensions', and
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
581 `dired-texinfo-unclean-extensions'.
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
582
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
583 See interactive function `dired-omit-mode' \(\\[dired-omit-mode]\) and
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
584 variables `dired-omit-mode' and `dired-omit-files'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
585
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
586 (defun dired-omit-expunge (&optional regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
587 "Erases all unmarked files matching REGEXP.
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
588 Does nothing if global variable `dired-omit-mode' is nil, or if called
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
589 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
590 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
591 filenames ending in `dired-omit-extensions'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
592 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
593
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
594 This functions works by temporarily binding `dired-marker-char' to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
595 `dired-omit-marker-char' and calling `dired-do-kill-lines'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
596 (interactive "sOmit files (regexp): ")
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
597 (if (and dired-omit-mode
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
598 (or (called-interactively-p 'interactive)
16617
19b2aeb694d1 (dired-omit-size-limit): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 16558
diff changeset
599 (not dired-omit-size-limit)
22688
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
600 (< (buffer-size) dired-omit-size-limit)
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
601 (progn
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
602 (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
603 dired-omit-size-limit)
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
604 (setq dired-omit-mode nil)
22688
c952205ba590 (dired-omit-expunge): Message if skipping omitting
Richard M. Stallman <rms@gnu.org>
parents: 22574
diff changeset
605 nil)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
606 (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
607 (old-modified-p (buffer-modified-p))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610 (let ((dired-marker-char dired-omit-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
611 (message "Omitting...")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
612 (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
613 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
614 (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
615 (force-mode-line-update))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
616 (message "(Nothing to omit)"))))
8713
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
617 ;; 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
618 ;; in mode-line of omitted buffers.
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
619 (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
620 (save-excursion
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
621 (goto-char (point-min))
fad4e60c964d (dired-omit-expunge): Avoid setting buffer modified
Richard M. Stallman <rms@gnu.org>
parents: 8078
diff changeset
622 (re-search-forward dired-re-mark nil t))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
623 count)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
624
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
625 (defun dired-omit-regexp ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
626 (concat (if dired-omit-files (concat "\\(" dired-omit-files "\\)") "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
627 (if (and dired-omit-files dired-omit-extensions) "\\|" "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
628 (if dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629 (concat ".";; a non-extension part should exist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630 "\\("
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631 (mapconcat 'regexp-quote dired-omit-extensions "\\|")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 "\\)$")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633 "")))
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 ;; Returns t if any work was done, nil otherwise.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
636 (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
637 "Mark unmarked files matching REGEXP, displaying MSG.
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 42559
diff changeset
638 REGEXP is matched against the entire file name.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
639 Does not re-mark files which already have a mark.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 With prefix argument, unflag all those files.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
641 Optional fourth argument LOCALP is as in `dired-get-filename'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642 (interactive "P")
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
643 (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
644 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
645 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646 ;; not already marked
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
647 (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648 ;; uninteresting
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 (let ((fn (dired-get-filename localp t)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650 (and fn (string-match regexp fn))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
651 msg)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
652
86529
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
653 ;; Compiler does not get fset.
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
654 (declare-function dired-omit-old-add-entry "dired-x")
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
655
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
656 ;; REDEFINE.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
657 ;; Redefine dired-aux.el's version of `dired-add-entry'
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
658 ;; Save old defun if not already done:
86529
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
659 (or (fboundp 'dired-omit-old-add-entry)
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
660 (fset 'dired-omit-old-add-entry (symbol-function 'dired-add-entry)))
86458
5fab5ba0ea1c Comments.
Glenn Morris <rgm@gnu.org>
parents: 86320
diff changeset
661
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
662 ;; REDEFINE.
18917
347133072016 (dired-omit-new-add-entry): Take new arg RELATIVE
Richard M. Stallman <rms@gnu.org>
parents: 18838
diff changeset
663 (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
664 ;; 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
665 ;; files that are going to be omitted anyway.
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
666 (if dired-omit-mode
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 ;; perhaps return t without calling ls
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668 (let ((omit-re (dired-omit-regexp)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 (if (or (string= omit-re "")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671 (string-match omit-re
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672 (cond
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 ((eq 'no-dir dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 ((eq t dired-omit-localp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 (dired-make-relative filename))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 (dired-make-absolute
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 filename
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 (file-name-directory filename)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681 ;; 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
682 (dired-omit-old-add-entry filename marker-char relative)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 ;; dired-add-entry returns t for success, perhaps we should
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 ;; return file-exists-p
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
686 ;; 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
687 (dired-omit-old-add-entry filename marker-char relative)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
689 ;; Redefine it.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 (fset 'dired-add-entry 'dired-omit-new-add-entry)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
691
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
692
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
693 ;;; VIRTUAL DIRED MODE.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
695 ;; For browsing `ls -lR' listings in a dired-like fashion.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
696
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
697 (defalias 'virtual-dired 'dired-virtual)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
698 (defun dired-virtual (dirname &optional switches)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699 "Put this buffer into Virtual Dired mode.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 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
702 filesystem will work.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704 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
705 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
706 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
707 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
708 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
709 buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
710
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
711 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
712 resume it in a later session.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
713
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
714 Type \\<dired-mode-map>\\[revert-buffer] \
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
715 in the Virtual Dired buffer and answer `y' to convert
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
716 the virtual to a real dired buffer again. You don't have to do this, though:
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
717 you can relist single subdirs using \\[dired-do-redisplay]."
5426
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 ;; 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
720 ;; its `default-directory'. If nil, the old value of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
721 ;; default-directory is used.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
722
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
723 ;; Optional SWITCHES are the ls switches to use.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
724
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
725 ;; Shell wildcards will be used if there already is a `wildcard'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 ;; 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
727 ;; 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
728 ;; hand if you want them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 (interactive
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731 (list (read-string "Virtual Dired directory: " (dired-virtual-guess-dir))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 (or (looking-at " ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 ;; if not already indented, do it now:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
735 (indent-region (point-min) (point-max) 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 (or dirname (setq dirname default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
737 (setq dirname (expand-file-name (file-name-as-directory dirname)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
738 (setq default-directory dirname) ; contains no wildcards
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739 (let ((wildcard (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741 (forward-line 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
742 (and (looking-at "^ wildcard ")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
743 (buffer-substring (match-end 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
744 (progn (end-of-line) (point)))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
745 (if wildcard
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
746 (setq dirname (expand-file-name wildcard default-directory))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
747 ;; 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
748 ;; decent subdir headerline:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750 (or (looking-at dired-subdir-regexp)
86320
f362439da54b (make-symbolic-link): Declare as function.
Juanma Barranquero <lekktu@gmail.com>
parents: 85719
diff changeset
751 (insert " "
66437
5a1898d736d0 (dired-virtual): Don't use `dired-insert-headerline'.
Masatake YAMATO <jet@gyve.org>
parents: 66325
diff changeset
752 (directory-file-name (file-name-directory default-directory))
5a1898d736d0 (dired-virtual): Don't use `dired-insert-headerline'.
Masatake YAMATO <jet@gyve.org>
parents: 66325
diff changeset
753 ":\n"))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 (dired-mode dirname (or switches dired-listing-switches))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 (setq mode-name "Virtual Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 revert-buffer-function 'dired-virtual-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 (set (make-local-variable 'dired-subdir-alist) nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
758 (dired-build-subdir-alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 (dired-initial-position dirname))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (defun dired-virtual-guess-dir ()
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
763 "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
764 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
765 based upon buffer contents. If nothing could be guessed, returns
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
766 nil."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
768 (let ((regexp "^\\( \\)?\\([^ \n\r]*\\)\\(:\\)[\n\r]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
769 (subexpr 2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
770 (goto-char (point-min))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
771 (cond ((looking-at regexp)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
772 ;; If a saved dired buffer, look to which dir and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
773 ;; perhaps wildcard it belongs:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
774 (let ((dir (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
775 (match-end subexpr))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776 (file-name-as-directory dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
777 ;; 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
778 ;; In raw ls listings the directory does not have a headerline
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
779 ;; try parent of first subdir, if any
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
780 ((re-search-forward regexp nil t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
781 (file-name-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
782 (directory-file-name
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
783 (file-name-as-directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784 (buffer-substring (match-beginning subexpr)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
785 (match-end subexpr))))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
786 (t ; if all else fails
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
787 nil))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
788
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
789
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
790 (defun dired-virtual-revert (&optional arg noconfirm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
791 (if (not
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
792 (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
793 (error "Cannot revert a Virtual Dired buffer")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
794 (setq mode-name "Dired"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
795 revert-buffer-function 'dired-revert)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
796 (revert-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
797
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
798 ;; A zero-arg version of dired-virtual.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
799 (defun dired-virtual-mode ()
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
800 "Put current buffer into Virtual Dired mode (see `dired-virtual').
77369
0e2f72a2fc13 Johan Bockg? <bojohan at dd.chalmers.se>:
Glenn Morris <rgm@gnu.org>
parents: 76976
diff changeset
801 Useful on `magic-mode-alist' with the regexp
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
802
77369
0e2f72a2fc13 Johan Bockg? <bojohan at dd.chalmers.se>:
Glenn Morris <rgm@gnu.org>
parents: 76976
diff changeset
803 \"^ \\\\(/[^ /]+\\\\)+/?:$\"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
804
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
805 to put saved dired buffers automatically into Virtual Dired mode.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
806
77369
0e2f72a2fc13 Johan Bockg? <bojohan at dd.chalmers.se>:
Glenn Morris <rgm@gnu.org>
parents: 76976
diff changeset
807 Also useful for `auto-mode-alist' like this:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
808
77369
0e2f72a2fc13 Johan Bockg? <bojohan at dd.chalmers.se>:
Glenn Morris <rgm@gnu.org>
parents: 76976
diff changeset
809 (add-to-list 'auto-mode-alist
0e2f72a2fc13 Johan Bockg? <bojohan at dd.chalmers.se>:
Glenn Morris <rgm@gnu.org>
parents: 76976
diff changeset
810 '(\"[^/]\\\\.dired\\\\'\" . dired-virtual-mode))"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
811 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
812 (dired-virtual (dired-virtual-guess-dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
813
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
814
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
815 ;;; SMART SHELL.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
816
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
817 ;; An Emacs buffer can have but one working directory, stored in the
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
818 ;; buffer-local variable `default-directory'. A Dired buffer may have
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
819 ;; several subdirectories inserted, but still has but one working directory:
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
820 ;; that of the top level Dired directory in that buffer. For some commands
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
821 ;; it is appropriate that they use the current Dired directory instead of
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
822 ;; `default-directory', e.g., `find-file' and `compile'. This is a general
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
823 ;; mechanism is provided for special handling of the working directory in
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
824 ;; special major modes.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
825
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
826 ;; It's easier to add to this alist than redefine function
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
827 ;; default-directory while keeping the old information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
828 (defconst default-directory-alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
829 '((dired-mode . (if (fboundp 'dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
830 (dired-current-directory)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
831 default-directory)))
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
832 "Alist of major modes and their opinion on `default-directory'.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
833 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
834 nil is ignored in favor of `default-directory'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
835
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
836 (defun dired-default-directory ()
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
837 "Usage like variable `default-directory'.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
838 Knows about the special cases in variable `default-directory-alist'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
839 (or (eval (cdr (assq major-mode default-directory-alist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
840 default-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
841
94255
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
842 (defun dired-smart-shell-command (command &optional output-buffer error-buffer)
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
843 "Like function `shell-command', but in the current Virtual Dired directory."
94255
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
844 (interactive
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
845 (list
102195
1c6cb8760e45 (dired-smart-shell-command): Remove code that uses
Juri Linkov <juri@jurta.org>
parents: 101541
diff changeset
846 (read-shell-command "Shell command: " nil nil
1c6cb8760e45 (dired-smart-shell-command): Remove code that uses
Juri Linkov <juri@jurta.org>
parents: 101541
diff changeset
847 (cond
1c6cb8760e45 (dired-smart-shell-command): Remove code that uses
Juri Linkov <juri@jurta.org>
parents: 101541
diff changeset
848 (buffer-file-name (file-relative-name buffer-file-name))
1c6cb8760e45 (dired-smart-shell-command): Remove code that uses
Juri Linkov <juri@jurta.org>
parents: 101541
diff changeset
849 ((eq major-mode 'dired-mode) (dired-get-filename t t))))
94255
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
850 current-prefix-arg
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
851 shell-command-default-error-buffer))
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
852 (let ((default-directory (dired-default-directory)))
94255
3849fa236ab2 (dired-smart-shell-command): Sync arguments and
Juri Linkov <juri@jurta.org>
parents: 94148
diff changeset
853 (shell-command command output-buffer error-buffer)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
854
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
855
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
856 ;;; LOCAL VARIABLES FOR DIRED BUFFERS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
857
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
858 ;; Brief Description:
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
859 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
860 ;; * `dired-extra-startup' is part of the `dired-mode-hook'.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
861 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
862 ;; * `dired-extra-startup' calls `dired-hack-local-variables'
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
863 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
864 ;; * `dired-hack-local-variables' checks the value of
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
865 ;;; `dired-local-variables-file'
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
866 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
867 ;; * Check if `dired-local-variables-file' is a non-nil string and is a
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
868 ;;; filename found in the directory of the Dired Buffer being created.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
869 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
870 ;; * If `dired-local-variables-file' satisfies the above, then temporarily
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
871 ;;; include it in the Dired Buffer at the bottom.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
872 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
873 ;; * Set `enable-local-variables' temporarily to the user variable
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
874 ;;; `dired-enable-local-variables' and run `hack-local-variables' on the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
875 ;;; Dired Buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
876
13904
d9bf85b9c19e (dired-local-variables-file): Use convert-standard-filename.
Richard M. Stallman <rms@gnu.org>
parents: 13033
diff changeset
877 (defvar dired-local-variables-file (convert-standard-filename ".dired")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
878 "Filename, as string, containing local dired buffer variables to be hacked.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
879 If this file found in current directory, then it will be inserted into dired
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
880 buffer and `hack-local-variables' will be run. See Info node
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
881 `(emacs)File Variables' for more information on local variables.
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
882 See also `dired-enable-local-variables'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
883
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
884 (defun dired-hack-local-variables ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
885 "Evaluate local variables in `dired-local-variables-file' for dired buffer."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
886 (if (and dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
887 (stringp dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
888 (file-exists-p dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
889 (let ((opoint (point-max))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
890 buffer-read-only
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
891 ;; In case user has `enable-local-variables' set to nil we
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
892 ;; override it locally with dired's variable.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
893 (enable-local-variables dired-enable-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
894 ;; Insert 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
895 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
896 (goto-char opoint)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897 (insert "\^L\n")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
898 (insert-file-contents dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
899 ;; Hack 'em.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
900 (let ((buffer-file-name dired-local-variables-file))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
901 (hack-local-variables))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
902 ;; Make sure that the modeline shows the proper information.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
903 (dired-sort-set-modeline)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
904 ;; 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
905 (delete-region opoint (point-max)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
906
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
907 (defun dired-omit-here-always ()
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
908 "Create `dired-local-variables-file' for omitting and reverts directory.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
909 Sets `dired-omit-mode' to t in a local variables file that is readable by
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
910 dired."
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
911 (interactive)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
912 (if (file-exists-p dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
913 (message "File `./%s' already exists." dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
914
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
915 ;; Create `dired-local-variables-file'.
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
916 (with-current-buffer (get-buffer-create " *dot-dired*")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
917 (erase-buffer)
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
918 (insert "Local Variables:\ndired-omit-mode: t\nEnd:\n")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
919 (write-file dired-local-variables-file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
920 (kill-buffer (current-buffer)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
921
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
922 ;; Run extra-hooks and revert directory.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
923 (dired-extra-startup)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
924 (dired-revert)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
926
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
927 ;;; GUESS SHELL COMMAND.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
928
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
929 ;; Brief Description:
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
930 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
931 ;; `dired-do-shell-command' is bound to `!' by dired.el.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
932 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
933 ;; * Redefine `dired-read-shell-command' so it calls
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
934 ;;; `dired-guess-shell-command'.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
935 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
936 ;; * `dired-guess-shell-command' calls `dired-guess-default' with list of
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
937 ;;; marked files.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
938 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
939 ;; * Parse `dired-guess-shell-alist-user' and
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
940 ;;; `dired-guess-shell-alist-default' (in that order) for the first REGEXP
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
941 ;;; that matches the first file in the file list.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
942 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
943 ;; * If the REGEXP matches all the entries of the file list then evaluate
11035
97da4cb32d03 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 9707
diff changeset
944 ;;; COMMAND, which is either a string or a Lisp expression returning a
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
945 ;;; string. COMMAND may be a list of commands.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
946 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
947 ;; * Return this command to `dired-guess-shell-command' which prompts user
85719
1655a8cabb9d Fix comment.
Juri Linkov <juri@jurta.org>
parents: 85518
diff changeset
948 ;;; with it. The list of commands is put into the list of default values.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
949 ;;; If a command is used successfully then it is stored permanently in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
950 ;;; `dired-shell-command-history'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
951
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
952 ;; Guess what shell command to apply to a file.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
953 (defvar dired-shell-command-history nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
954 "History list for commands that read dired-shell commands.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
955
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
956 ;; Default list of shell commands.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
957
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
958 ;; NOTE: Use `gunzip -c' instead of `zcat' on `.gz' files. Some do not
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
959 ;; install GNU zip's version of zcat.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
960
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
961 (defvar dired-guess-shell-alist-default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
962 (list
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
963 (list "\\.tar$"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
964 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
965 (concat dired-guess-shell-gnutar " xvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
966 "tar xvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
967 ;; Extract files into a separate subdirectory
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
968 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
969 (concat "mkdir " (file-name-sans-extension file)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
970 "; " dired-guess-shell-gnutar " -C "
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
971 (file-name-sans-extension file) " -xvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
972 (concat "mkdir " (file-name-sans-extension file)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
973 "; tar -C " (file-name-sans-extension file) " -xvf"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
974 ;; List archive contents.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
975 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
976 (concat dired-guess-shell-gnutar " tvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
977 "tar tvf"))
5426
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 ;; REGEXPS for compressed archives must come before the .Z rule to
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
980 ;; be recognized:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
981 (list "\\.tar\\.Z$"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
982 ;; Untar it.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
983 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
984 (concat dired-guess-shell-gnutar " zxvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
985 (concat "zcat * | tar xvf -"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
986 ;; Optional conversion to gzip format.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
987 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
988 " " dired-guess-shell-znew-switches))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
989
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
990 ;; gzip'ed archives
23108
0005f4030460 (dired-guess-shell-alist-default): Fix regexp.
Karl Heuer <kwzh@gnu.org>
parents: 22688
diff changeset
991 (list "\\.t\\(ar\\.\\)?gz$"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
992 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
993 (concat dired-guess-shell-gnutar " zxvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
994 (concat "gunzip -qc * | tar xvf -"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
995 ;; Extract files into a separate subdirectory
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
996 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
997 (concat "mkdir " (file-name-sans-extension file)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
998 "; " dired-guess-shell-gnutar " -C "
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
999 (file-name-sans-extension file) " -zxvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1000 (concat "mkdir " (file-name-sans-extension file)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1001 "; gunzip -qc * | tar -C "
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1002 (file-name-sans-extension file) " -xvf -"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1003 ;; Optional decompression.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1004 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q" ""))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1005 ;; List archive contents.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1006 '(if dired-guess-shell-gnutar
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1007 (concat dired-guess-shell-gnutar " ztvf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1008 (concat "gunzip -qc * | tar tvf -")))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1009
25409
d414a697a646 (dired-guess-shell-alist-default): Support bzip2 format.
Karl Heuer <kwzh@gnu.org>
parents: 23108
diff changeset
1010 ;; bzip2'ed archives
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1011 (list "\\.t\\(ar\\.bz2\\|bz\\)$"
25409
d414a697a646 (dired-guess-shell-alist-default): Support bzip2 format.
Karl Heuer <kwzh@gnu.org>
parents: 23108
diff changeset
1012 "bunzip2 -c * | tar xvf -"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1013 ;; Extract files into a separate subdirectory
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1014 '(concat "mkdir " (file-name-sans-extension file)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1015 "; bunzip2 -c * | tar -C "
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1016 (file-name-sans-extension file) " -xvf -")
25409
d414a697a646 (dired-guess-shell-alist-default): Support bzip2 format.
Karl Heuer <kwzh@gnu.org>
parents: 23108
diff changeset
1017 ;; Optional decompression.
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1018 "bunzip2")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1019
106198
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1020 ;; xz'ed archives
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1021 (list "\\.t\\(ar\\.\\)?xz$"
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1022 "unxz -c * | tar xvf -"
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1023 ;; Extract files into a separate subdirectory
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1024 '(concat "mkdir " (file-name-sans-extension file)
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1025 "; unxz -c * | tar -C "
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1026 (file-name-sans-extension file) " -xvf -")
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1027 ;; Optional decompression.
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1028 "unxz")
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1029
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1030 '("\\.shar\\.Z$" "zcat * | unshar")
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1031 '("\\.shar\\.g?z$" "gunzip -qc * | unshar")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1032
27258
5188825710c0 (dired-guess-shell-alist-default):
Richard M. Stallman <rms@gnu.org>
parents: 27252
diff changeset
1033 '("\\.e?ps$" "ghostview" "xloadimage" "lpr")
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1034 (list "\\.e?ps\\.g?z$" "gunzip -qc * | ghostview -"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1035 ;; Optional decompression.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1036 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1037 (list "\\.e?ps\\.Z$" "zcat * | ghostview -"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1038 ;; Optional conversion to gzip format.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1039 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1040 " " dired-guess-shell-znew-switches))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1041
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1042 '("\\.patch$" "cat * | patch")
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1043 (list "\\.patch\\.g?z$" "gunzip -qc * | patch"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1044 ;; Optional decompression.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1045 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1046 (list "\\.patch\\.Z$" "zcat * | patch"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1047 ;; Optional conversion to gzip format.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1048 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1049 " " dired-guess-shell-znew-switches))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1050
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1051 ;; The following four extensions are useful with dired-man ("N" key)
68748
51fd7d4e1d8a (dired-guess-shell-alist-default): Add .man as a `dired-man' target.
Masatake YAMATO <jet@gyve.org>
parents: 68651
diff changeset
1052 (list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man)
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1053 (if (Man-support-local-filenames)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1054 "man -l"
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1055 "cat * | tbl | nroff -man -h")))
68748
51fd7d4e1d8a (dired-guess-shell-alist-default): Add .man as a `dired-man' target.
Masatake YAMATO <jet@gyve.org>
parents: 68651
diff changeset
1056 (list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man)
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1057 (if (Man-support-local-filenames)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1058 "man -l"
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1059 "gunzip -qc * | tbl | nroff -man -h"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1060 ;; Optional decompression.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1061 '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1062 (list "\\.[0-9]\\.Z$" '(progn (require 'man)
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1063 (if (Man-support-local-filenames)
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1064 "man -l"
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1065 "zcat * | tbl | nroff -man -h"))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1066 ;; Optional conversion to gzip format.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1067 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1068 " " dired-guess-shell-znew-switches))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1069 '("\\.pod$" "perldoc" "pod2man * | nroff -man")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1070
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1071 '("\\.dvi$" "xdvi" "dvips") ; preview and printing
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1072 '("\\.au$" "play") ; play Sun audiofiles
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1073 '("\\.mpe?g$\\|\\.avi$" "xine -p")
97628
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
1074 '("\\.ogg$" "ogg123")
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
1075 '("\\.mp3$" "mpg123")
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1076 '("\\.wav$" "play")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1077 '("\\.uu$" "uudecode") ; for uudecoded files
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1078 '("\\.hqx$" "mcvert")
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1079 '("\\.sh$" "sh") ; execute shell scripts
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1080 '("\\.xbm$" "bitmap") ; view X11 bitmaps
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1081 '("\\.gp$" "gnuplot")
27258
5188825710c0 (dired-guess-shell-alist-default):
Richard M. Stallman <rms@gnu.org>
parents: 27252
diff changeset
1082 '("\\.p[bgpn]m$" "xloadimage")
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1083 '("\\.gif$" "xloadimage") ; view gif pictures
27258
5188825710c0 (dired-guess-shell-alist-default):
Richard M. Stallman <rms@gnu.org>
parents: 27252
diff changeset
1084 '("\\.tif$" "xloadimage")
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1085 '("\\.png$" "display") ; xloadimage 4.1 doesn't grok PNG
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1086 '("\\.jpe?g$" "xloadimage")
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1087 '("\\.fig$" "xfig") ; edit fig pictures
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1088 '("\\.out$" "xgraph") ; for plotting purposes.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1089 '("\\.tex$" "latex" "tex")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1090 '("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi")
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1091 '("\\.pdf$" "xpdf")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1092 '("\\.doc$" "antiword" "strings")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1093 '("\\.rpm$" "rpm -qilp" "rpm -ivh")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1094 '("\\.dia$" "dia")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1095 '("\\.mgp$" "mgp")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1096
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1097 ;; Some other popular archivers.
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1098 (list "\\.zip$" "unzip" "unzip -l"
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1099 ;; Extract files into a separate subdirectory
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1100 '(concat "unzip" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1101 " -d " (file-name-sans-extension file)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1102 '("\\.zoo$" "zoo x//")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1103 '("\\.lzh$" "lharc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1104 '("\\.arc$" "arc x")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1105 '("\\.shar$" "unshar")
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 ;; Compression.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1108 (list "\\.g?z$" '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1109 (list "\\.dz$" "dictunzip")
25409
d414a697a646 (dired-guess-shell-alist-default): Support bzip2 format.
Karl Heuer <kwzh@gnu.org>
parents: 23108
diff changeset
1110 (list "\\.bz2$" "bunzip2")
106198
97b90713fd52 Sven Joachim <svenjoac at gmx.de>
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
1111 (list "\\.xz$" "unxz")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1112 (list "\\.Z$" "uncompress"
72582
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1113 ;; Optional conversion to gzip format.
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1114 '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1115 " " dired-guess-shell-znew-switches))
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1116
ebca3d924818 (dired-guess-shell-alist-default): Update.
Romain Francoise <romain@orebokech.com>
parents: 70806
diff changeset
1117 '("\\.sign?$" "gpg --verify"))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1118
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1119 "Default alist used for shell command guessing.
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1120 See `dired-guess-shell-alist-user'.")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1121
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1122 (defcustom dired-guess-shell-alist-user nil
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1123 "User-defined alist of rules for suggested commands.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1124 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
1125 `dired-guess-shell-alist-default' (to which they are prepended).
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1126
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1127 Each element of this list looks like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1128
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1129 \(REGEXP COMMAND...\)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1130
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1131 where each COMMAND can either be a string or a Lisp expression that evaluates
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1132 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
1133 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
1134 with \\[previous-history-element] (M-p) .
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1135
97628
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
1136 The variable `dired-guess-shell-case-fold-search' controls whether
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
1137 REGEXP is matched case-sensitively.
c27cf1a5f2f6 (dired-guess-shell-alist-default): Add .mp3 and .ogg.
Glenn Morris <rgm@gnu.org>
parents: 94762
diff changeset
1138
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1139 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
1140 `.foo' and `.bar' files, write
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1141
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1142 \(setq dired-guess-shell-alist-user
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1143 (list (list \"\\\\.foo\\\\'\" \"FOO-COMMAND\");; fixed rule
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1144 ;; possibly more rules ...
102265
a7393d93645e (dired-guess-shell-alist-user): Fix doc typo.
Glenn Morris <rgm@gnu.org>
parents: 102200
diff changeset
1145 (list \"\\\\.bar\\\\'\";; rule with condition test
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1146 '(if condition
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1147 \"BAR-COMMAND-1\"
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1148 \"BAR-COMMAND-2\")))\)"
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1149 :group 'dired-x
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1150 :type '(alist :key-type regexp :value-type (repeat sexp)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1151
77627
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1152 (defcustom dired-guess-shell-case-fold-search t
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1153 "If non-nil, `dired-guess-shell-alist-default' and
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1154 `dired-guess-shell-alist-user' are matched case-insensitively."
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1155 :group 'dired-x
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1156 :type 'boolean)
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1157
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1158 (defun dired-guess-default (files)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1159 "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
1160 See `dired-guess-shell-alist-user'."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1161
77627
6f7d1cf40bad Revert 2007-04-06 change.
Romain Francoise <romain@orebokech.com>
parents: 77369
diff changeset
1162 (let* ((case-fold-search dired-guess-shell-case-fold-search)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1163 ;; Prepend the user's alist to the default alist.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1164 (alist (append dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1165 dired-guess-shell-alist-default))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1166 (file (car files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1167 (flist (cdr files))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1168 elt regexp cmds)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1169
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1170 ;; 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
1171 (while alist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1172 (setq elt (car alist)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1173 regexp (car elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1174 alist (cdr alist))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1175 (if (string-match regexp file)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1176 (setq cmds (cdr elt)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1177 alist nil)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1178
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1179 ;; 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
1180 (while (and flist
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1181 (string-match regexp (car flist)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1182 (setq flist (cdr flist)))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1183
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1184 ;; 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
1185 ;; all the files in FILES were matched by the regexp.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1186 (setq cmds (and (not flist) cmds))
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 ;; Return commands or nil if flist is still non-nil.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1189 ;; 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
1190 (cond ((not (cdr cmds))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1191 (eval (car cmds))) ; single command
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1192 (t
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1193 (mapcar (function eval) cmds)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1194
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1195 (defun dired-guess-shell-command (prompt files)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1196 "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
1197 (let ((default (dired-guess-default files))
85518
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1198 default-list val)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1199 (if (null default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1200 ;; Nothing to guess
102200
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1201 (read-shell-command prompt nil 'dired-shell-command-history)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1202 (if (listp default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1203 ;; More than one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1204 (setq default-list default
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1205 default (car default)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1206 prompt (concat
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1207 prompt
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1208 (format "{%d guesses} " (length default-list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1209 ;; Just one guess
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1210 (setq default-list (list default)))
85518
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1211 ;; Put the first guess in the prompt but not in the initial value.
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1212 (setq prompt (concat prompt (format "[%s] " default)))
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1213 ;; All guesses can be retrieved with M-n
102200
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1214 (setq val (read-shell-command prompt nil
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1215 'dired-shell-command-history
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1216 default-list))
85518
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1217 ;; If we got a return, then return default.
50f694f3549c (dired-guess-shell-command): Put all guesses to the
Juri Linkov <juri@jurta.org>
parents: 78236
diff changeset
1218 (if (equal val "") default val))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1219
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1220 ;; REDEFINE.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1221 ;; Redefine dired-aux.el's version:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1222 (defun dired-read-shell-command (prompt arg files)
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1223 "Read a dired shell command prompting with PROMPT (using `read-shell-command').
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1224 ARG is the prefix arg and may be used to indicate in the prompt which
102200
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1225 FILES are affected.
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1226 This is an extra function so that you can redefine it."
102200
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1227 (minibuffer-with-setup-hook
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1228 (lambda ()
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1229 (set (make-local-variable 'minibuffer-default-add-function)
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1230 'minibuffer-default-add-dired-shell-commands))
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1231 (dired-mark-pop-up
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1232 nil 'shell files
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1233 'dired-guess-shell-command
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1234 (format prompt (dired-mark-prompt arg files)) ; PROMPT
74dd2284ef3a (dired-guess-shell-command): Use read-shell-command
Juri Linkov <juri@jurta.org>
parents: 102195
diff changeset
1235 files))) ; FILES
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1236
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1237
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1238 ;;; RELATIVE SYMBOLIC LINKS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1239
86320
f362439da54b (make-symbolic-link): Declare as function.
Juanma Barranquero <lekktu@gmail.com>
parents: 85719
diff changeset
1240 (declare-function make-symbolic-link "fileio.c")
f362439da54b (make-symbolic-link): Declare as function.
Juanma Barranquero <lekktu@gmail.com>
parents: 85719
diff changeset
1241
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1242 (defvar dired-keep-marker-relsymlink ?S
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1243 "See variable `dired-keep-marker-move'.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1244
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1245 (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
1246 "Make a symbolic link (pointing to FILE1) in FILE2.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1247 The link is relative (if possible), for example
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1248
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1249 \"/vol/tex/bin/foo\" \"/vol/local/bin/foo\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1250
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1251 results in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1252
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1253 \"../../tex/bin/foo\" \"/vol/local/bin/foo\""
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1254 (interactive "FRelSymLink: \nFRelSymLink %s: \np")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1255 (let (name1 name2 len1 len2 (index 0) sub)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1256 (setq file1 (expand-file-name file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1257 file2 (expand-file-name file2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1258 len1 (length file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1259 len2 (length file2))
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 42559
diff changeset
1260 ;; Find common initial file name components:
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1261 (let (next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1262 (while (and (setq next (string-match "/" file1 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1263 (setq next (1+ next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1264 (< next (min len1 len2))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1265 ;; For the comparison, both substrings must end in
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1266 ;; `/', so NEXT is *one plus* the result of the
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1267 ;; string-match.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1268 ;; 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
1269 ;; to "/tmp/abc" erroneously giving "/tmp/a" instead
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1270 ;; of "/tmp/" as common initial component
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1271 (string-equal (substring file1 0 next)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1272 (substring file2 0 next)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1273 (setq index next))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1274 (setq name2 file2
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1275 sub (substring file1 0 index)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1276 name1 (substring file1 index)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1277 (if (string-equal sub "/")
49243
15dce98a38b0 Doc fixes.
Kim F. Storm <storm@cua.dk>
parents: 42559
diff changeset
1278 ;; No common initial file name found
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1279 (setq name1 file1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1280 ;; Else they have a common parent directory
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1281 (let ((tem (substring file2 index))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1282 (start 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1283 (count 0))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1284 ;; Count number of slashes we must compensate for ...
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1285 (while (setq start (string-match "/" tem start))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1286 (setq count (1+ count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1287 start (1+ start)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1288 ;; ... and prepend a "../" for each slash found:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1289 (while (> count 0)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1290 (setq count (1- count)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1291 name1 (concat "../" name1)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1292 (make-symbolic-link
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1293 (directory-file-name name1) ; must not link to foo/
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1294 ; (trailing slash!)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1295 name2 ok-if-already-exists)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1296
75618
d75435a2e621 (dired-do-relsymlink): Add an autoload cookie.
Eli Zaretskii <eliz@gnu.org>
parents: 75617
diff changeset
1297 ;;;###autoload
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1298 (defun dired-do-relsymlink (&optional arg)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1299 "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
1300 Otherwise make a relative symbolic link to the current file.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1301 This creates relative symbolic links like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1302
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1303 foo -> ../bar/foo
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1304
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1305 not absolute ones like
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1306
75612
9599324110d3 (dired-do-relsymlink): Add reference to dired-do-symlink.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
1307 foo -> /ugly/file/name/that/may/change/any/day/bar/foo
9599324110d3 (dired-do-relsymlink): Add reference to dired-do-symlink.
Eli Zaretskii <eliz@gnu.org>
parents: 75347
diff changeset
1308
75617
6625541ec588 (dired-do-relsymlink): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 75612
diff changeset
1309 For absolute symlinks, use \\[dired-do-symlink]."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1310 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1311 (dired-do-create-files 'relsymlink (function dired-make-relative-symlink)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1312 "RelSymLink" arg dired-keep-marker-relsymlink))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1313
64367
93037e5003f9 (dired-do-relsymlink-regexp): Add missing optional arg ARG, and use it.
Eli Zaretskii <eliz@gnu.org>
parents: 64091
diff changeset
1314 (defun dired-do-relsymlink-regexp (regexp newname &optional arg whole-name)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1315 "RelSymlink all marked files containing REGEXP to NEWNAME.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1316 See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1317 for more info."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1318 (interactive (dired-mark-read-regexp "RelSymLink"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1319 (dired-do-create-files-regexp
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1320 (function dired-make-relative-symlink)
64367
93037e5003f9 (dired-do-relsymlink-regexp): Add missing optional arg ARG, and use it.
Eli Zaretskii <eliz@gnu.org>
parents: 64091
diff changeset
1321 "RelSymLink" arg regexp newname whole-name dired-keep-marker-relsymlink))
5426
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 ;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1325
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1326 ;; Brief Description:
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1327 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1328 ;; `dired-do-find-marked-files' is bound to `F' by dired-x.el.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1329 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1330 ;; * 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
1331 ;;; Dired Buffer into a list of filenames `FILE-LIST'.
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1332 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1333 ;; * Pass FILE-LIST to `dired-simultaneous-find-file' all with
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1334 ;;; `dired-do-find-marked-files''s prefix argument NOSELECT.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1335 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1336 ;; * `dired-simultaneous-find-file' runs through FILE-LIST decrementing the
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1337 ;;; list each time.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1338 ;;;
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1339 ;; * If NOSELECT is non-nil then just run `find-file-noselect' on each
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1340 ;;; element of FILE-LIST.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1341 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1342 ;; * If NOSELECT is nil then calculate the `size' of the window for each file
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1343 ;;; 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
1344 ;;; cognizant of the window-configuration.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1345 ;;;
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1346 ;; * If `size' is too small abort, otherwise run `find-file' on each element
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1347 ;;; of FILE-LIST giving each a window of height `size'.
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 (defun dired-do-find-marked-files (&optional noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1350 "Find all marked files displaying all of them simultaneously.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1351 With optional NOSELECT just find files but do not select them.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1352
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1353 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
1354 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
1355 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
1356 `window-min-height'.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1357
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1358 To keep dired buffer displayed, type \\[split-window-vertically] first.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1359 To display just marked files, type \\[delete-other-windows] first."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1360
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1361 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1362 (dired-simultaneous-find-file (dired-get-marked-files) noselect))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1363
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1364 (defun dired-simultaneous-find-file (file-list noselect)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1365
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1366 "Visit all files in FILE-LIST and display them simultaneously.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1367 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
1368 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
1369 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
1370 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
1371 NOSELECT the files are merely found but not selected."
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1372
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1373 ;; 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
1374 ;; to specify FILE-LIST interactively unless via dired.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1375
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1376 (let (size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1377
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1378 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1379 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1380 (find-file-noselect (car file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1381
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1382 ;; 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
1383 (setq size (/ (window-height) (length file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1384 (or (<= window-min-height size)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1385 (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
1386 (find-file (car file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1387
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1388 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1389 (setq file-list (cdr file-list))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1390
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1391 (while file-list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1392
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1393 (if noselect
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1394 ;; Do not select the buffer.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1395 (find-file-noselect (car file-list))
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 ;; Vertically split off a window of desired size. Upper window will
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1398 ;; have SIZE lines. Select lower (larger) window. We split it again.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1399 (select-window (split-window nil size))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1400 (find-file (car file-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1401
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1402 ;; Decrement.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1403 (setq file-list (cdr file-list)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1404
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1405
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1406 ;;; MISCELLANEOUS COMMANDS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1407
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1408 ;; Run man on files.
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1409
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1410 (defun dired-man ()
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1411 "Run man on this file. Display old buffer if buffer name matches filename.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1412 Uses `man.el' of \\[manual-entry] fame."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1413 (interactive)
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1414 (require 'man)
54522
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1415 (let* ((file (dired-get-filename))
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1416 (manual-program (replace-regexp-in-string "\\*" "%s"
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1417 (dired-guess-shell-command
8379dc4bdc83 (dired-guess-shell-alist-default): Add choices for
Juri Linkov <juri@jurta.org>
parents: 52646
diff changeset
1418 "Man command: " (list file)))))
7865
d3e50535e6da (dired-man): Use internal function from man.el.
Richard M. Stallman <rms@gnu.org>
parents: 7839
diff changeset
1419 (Man-getpage-in-background file)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1420
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1421 ;; Run Info on files.
5426
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 (defun dired-info ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1424 "Run info on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1425 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1426 (info (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1427
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1428 ;; Run mail on mail folders.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1429
66868
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
1430 ;; Avoid compiler warning.
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
1431 (eval-when-compile
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
1432 (when (not (fboundp 'vm-visit-folder))
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
1433 (defun vm-visit-folder (file &optional arg)
ccb8ee5226d6 If `vm-visit-folder' doesn't exist, define it as a dummy function in
Romain Francoise <romain@orebokech.com>
parents: 66659
diff changeset
1434 nil)))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1435
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1436 (defun dired-vm (&optional read-only)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1437 "Run VM on this file.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1438 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
1439 See also variable `dired-vm-read-only-folders'."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1440 (interactive "P")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1441 (let ((dir (dired-current-directory))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1442 (fil (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1443 ;; 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
1444 (cond (read-only (vm-visit-folder fil t))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1445 ((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
1446 ((null dired-vm-read-only-folders) (vm-visit-folder fil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1447 (t (vm-visit-folder fil (not (file-writable-p fil)))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1448 ;; so that pressing `v' inside VM does prompt within current directory:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1449 (set (make-local-variable 'vm-folder-directory) dir)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1450
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1451 (defun dired-rmail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1452 "Run RMAIL on this file."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1453 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1454 (rmail (dired-get-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1455
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1456 (defun dired-do-run-mail ()
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1457 "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
1458 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1459 (if dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1460 ;; Read mail folder using vm.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1461 (dired-vm)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1462 ;; Read mail folder using rmail.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1463 (dired-rmail)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1464
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1465
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1466 ;;; MISCELLANEOUS INTERNAL FUNCTIONS.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1467
86529
6116ad9615de Standardize order of header items. Delete meaningless header keys.
Glenn Morris <rgm@gnu.org>
parents: 86458
diff changeset
1468 (declare-function dired-old-find-buffer-nocreate "dired-x")
86458
5fab5ba0ea1c Comments.
Glenn Morris <rgm@gnu.org>
parents: 86320
diff changeset
1469
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1470 (or (fboundp 'dired-old-find-buffer-nocreate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1471 (fset 'dired-old-find-buffer-nocreate
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1472 (symbol-function 'dired-find-buffer-nocreate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1473
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1474 ;; REDEFINE.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1475 ;; 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
1476 (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
1477 (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
1478 ;; 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
1479 (string-equal dirname (file-name-directory dirname)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1480 (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
1481 (buffers (nreverse
8792
d85424a6fb85 (dired-clean-up-after-deletion): Expand fn.
Richard M. Stallman <rms@gnu.org>
parents: 8713
diff changeset
1482 (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
1483 (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
1484 ;; wildcards must match, too:
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1485 (equal dired-directory dirname))))
9b53ce243465 (dired-find-buffer-nocreate): Don't try to find a
Karl Heuer <kwzh@gnu.org>
parents: 11588
diff changeset
1486 ;; 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
1487 (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
1488 (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
1489 ;; ---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
1490 (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
1491 (dired-old-find-buffer-nocreate dirname mode)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1492
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1493 ;; This should be a builtin
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1494 (defun dired-buffer-more-recently-used-p (buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1495 "Return t if BUFFER1 is more recently used than BUFFER2."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1496 (if (equal buffer1 buffer2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1497 nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1498 (let ((more-recent nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1499 (list (buffer-list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1500 (while (and list
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1501 (not (setq more-recent (equal buffer1 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1502 (not (equal buffer2 (car list))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1503 (setq list (cdr list)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1504 more-recent)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1505
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1506 ;; Same thing as `dired-buffers-for-dir' of dired.el? - lrd 11/23/93
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1507 ;; (defun dired-buffers-for-dir-exact (dir)
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1508 ;; ;; Return a list of buffers that dired DIR (a directory or wildcard)
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1509 ;; ;; at top level, or as subdirectory.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1510 ;; ;; Top level matches must match the wildcard part too, if any.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1511 ;; ;; The list is in reverse order of buffer creation, most recent last.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1512 ;; ;; As a side effect, killed dired buffers for DIR are removed from
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1513 ;; ;; dired-buffers.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1514 ;; (let ((alist dired-buffers) result elt)
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1515 ;; (while alist
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1516 ;; (setq elt (car alist)
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1517 ;; alist (cdr alist))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1518 ;; (let ((buf (cdr elt)))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1519 ;; (if (buffer-name buf)
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1520 ;; ;; Top level must match exactly against dired-directory in
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1521 ;; ;; case one of them is a wildcard.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1522 ;; (if (or (equal dir (with-current-buffer buf dired-directory))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1523 ;; (assoc dir (with-current-buffer buf dired-subdir-alist)))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1524 ;; (setq result (cons buf result)))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1525 ;; ;; else buffer is killed - clean up:
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1526 ;; (setq dired-buffers (delq elt dired-buffers)))))
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1527 ;; result))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1528
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1529 ;; REDEFINE.
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1530 ;; Redefines dired.el's version of `dired-initial-position'
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1531 (defun dired-initial-position (dirname)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1532 "Where point should go in a new listing of DIRNAME.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1533 Point assumed at beginning of new subdir line.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1534 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
1535 (end-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1536 (if dired-find-subdir (dired-goto-subdir dirname)) ; new
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1537 (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1538
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1539
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1540 ;; 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
1541 ;; Apparently people do use it. - lrd 12/22/97.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1542 (defun dired-mark-sexp (predicate &optional unflag-p)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1543 "Mark files for which PREDICATE returns non-nil.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1544 With a prefix arg, unflag those files instead.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1545
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1546 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
1547
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1548 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
1549 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
1550 (usually in blocks or, with -k, in KByte)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1551 mode [string] file permission bits, e.g. \"-rw-r--r--\"
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1552 nlink [integer] number of links to file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1553 uid [string] owner
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1554 gid [string] group (If the gid is not displayed by ls,
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1555 this will still be set (to the same as uid))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1556 size [integer] file size in bytes
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1557 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
1558 name [string] the name of the file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1559 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
1560
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1561 For example, use
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1562
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1563 (equal 0 size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1564
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1565 to mark all zero length files."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1566 ;; Using sym="" instead of nil avoids the trap of
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1567 ;; (string-match "foo" sym) into which a user would soon fall.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1568 ;; Give `equal' instead of `=' in the example, as this works on
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1569 ;; integers and strings.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1570 (interactive "xMark if (lisp expr): \nP")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1571 (message "%s" predicate)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1572 (let ((dired-marker-char (if unflag-p ?\040 dired-marker-char))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1573 inode s mode nlink uid gid size time name sym)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1574 (dired-mark-if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1575 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1576 (and
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1577 ;; Sets vars
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1578 ;; inode s mode nlink uid gid size time name sym
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1579
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1580 ;; according to current file line. Returns t for success, nil if
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1581 ;; 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
1582 ;; 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
1583 ;; Moves point within the current line.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1584 (if (dired-move-to-filename)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1585 (let (pos
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1586 (mode-len 10) ; length of mode string
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1587 ;; like in dired.el, but with subexpressions \1=inode, \2=s:
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1588 (dired-re-inode-size "\\s *\\([0-9]*\\)\\s *\\([0-9]*\\) ?"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1589 (beginning-of-line)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1590 (forward-char 2)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1591 (if (looking-at dired-re-inode-size)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1592 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1593 (goto-char (match-end 0))
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1594 (setq inode (string-to-number (buffer-substring (match-beginning 1)
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1595 (match-end 1)))
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1596 s (string-to-number (buffer-substring (match-beginning 2)
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1597 (match-end 2)))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1598 (setq inode nil
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1599 s nil))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1600 (setq mode (buffer-substring (point) (+ mode-len (point))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1601 (forward-char mode-len)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1602 (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
1603 ;; Karsten Wenger <kw@cis.uni-muenchen.de> fixed uid.
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1604 (setq uid (buffer-substring (+ (point) 1)
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1605 (progn (forward-word 1) (point))))
66325
fda96ff4c7e5 * files.el (directory-listing-before-filename-regexp): New
Michael Albinus <michael.albinus@gmx.de>
parents: 65288
diff changeset
1606 (re-search-forward directory-listing-before-filename-regexp)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1607 (goto-char (match-beginning 1))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1608 (forward-char -1)
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1609 (setq size (string-to-number (buffer-substring (save-excursion
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1610 (backward-word 1)
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1611 (setq pos (point)))
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 56060
diff changeset
1612 (point))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1613 (goto-char pos)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1614 (backward-word 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1615 ;; if no gid is displayed, gid will be set to uid
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1616 ;; 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
1617 (setq gid (buffer-substring (save-excursion
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1618 (forward-word 1) (point))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1619 (point))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1620 time (buffer-substring (match-beginning 1)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1621 (1- (dired-move-to-filename)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1622 name (buffer-substring (point)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1623 (or
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1624 (dired-move-to-end-of-filename t)
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1625 (point)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1626 sym (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1627 (if (looking-at " -> ")
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1628 (buffer-substring
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1629 (progn (forward-char 4) (point))
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1630 (progn (end-of-line) (point)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1631 "")))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1632 t)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1633 nil)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1634 (eval predicate)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1635 (format "'%s file" predicate))))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1636
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1637
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1638 ;;; FIND FILE AT POINT.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1639
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1640 (defvar dired-x-hands-off-my-keys t
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1641 "*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
1642 Similarly for `dired-x-find-file-other-window' over `find-file-other-window'.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1643 If you change this variable after `dired-x.el' is loaded then do
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1644 \\[dired-x-bind-find-file].")
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1645
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1646 ;; Bind `dired-x-find-file{-other-window}' over wherever
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1647 ;; `find-file{-other-window}' is bound?
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1648 (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
1649 "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
1650 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
1651 Binding direction based on `dired-x-hands-off-my-keys'.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1652 This function is part of `after-init-hook'."
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1653 (interactive)
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 105170
diff changeset
1654 (if (called-interactively-p 'interactive)
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1655 (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
1656 (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
1657 (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
1658 (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
1659 '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
1660 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1661 (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
1662 '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
1663 (current-global-map)))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1664 (t
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1665 (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
1666 'find-file
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1667 (current-global-map))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1668 (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
1669 '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
1670 (current-global-map))))
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1671 ;; Clear mini-buffer.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1672 (message nil))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1673
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1674 ;; Now call it so binding is correct and put on `after-init-hook' in case
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1675 ;; user changes binding.
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1676 (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
1677 (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
1678
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1679 (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
1680 "Edit file FILENAME.
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1681 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
1682 See the function `display-buffer'.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1683
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1684 Identical to `find-file' except when called interactively, with a prefix arg
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1685 \(e.g., \\[universal-argument]\), in which case it guesses filename near point.
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1686 Useful for editing file mentioned in buffer you are viewing,
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1687 or to test if that file exists. Use minibuffer after snatching filename."
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1688 (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
1689 (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
1690
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1691 (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
1692 "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
1693 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
1694 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
1695
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1696 Identical to `find-file-other-window' except when called interactively, with
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1697 a prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename near point.
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1698 Useful for editing file mentioned in buffer you are viewing,
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1699 or to test if that file exists. Use minibuffer after snatching filename."
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1700 (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
1701 (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
1702
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1703 ;;; Internal functions.
49271
720dd3042058 (dired-filename-at-point): Fix filename-chars.
Dave Love <fx@gnu.org>
parents: 49243
diff changeset
1704
49485
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1705 ;; Fixme: This should probably use `thing-at-point'. -- fx
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1706 (defun dired-filename-at-point ()
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1707 "Get the filename closest to point, but do not change position.
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1708 Has a preference for looking backward when not directly on a symbol.
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1709 Not 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
1710
49271
720dd3042058 (dired-filename-at-point): Fix filename-chars.
Dave Love <fx@gnu.org>
parents: 49243
diff changeset
1711 (let ((filename-chars "-.[:alnum:]_/:$+@")
27917
b54fc217c5c8 (dired-filename-at-point): Add `@' to valid
Gerd Moellmann <gerd@gnu.org>
parents: 27258
diff changeset
1712 start end filename prefix)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1713
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1714 (save-excursion
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1715 ;; First see if just past a filename.
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1716 (if (not (eobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1717 (if (looking-at "[] \t\n[{}()]") ; whitespace or some parens
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1718 (progn
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1719 (skip-chars-backward " \n\t\r({[]})")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1720 (if (not (bobp))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1721 (backward-char 1)))))
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1722
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1723 (if (string-match (concat "[" filename-chars "]")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1724 (char-to-string (following-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1725 (progn
49485
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1726 (if (re-search-backward (concat "[^" filename-chars "]") nil t)
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1727 (forward-char)
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1728 (goto-char (point-min)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1729 (setq start (point))
27917
b54fc217c5c8 (dired-filename-at-point): Add `@' to valid
Gerd Moellmann <gerd@gnu.org>
parents: 27258
diff changeset
1730 (setq prefix
49485
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1731 (and (string-match
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1732 "^\\w+@"
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1733 (buffer-substring start (line-beginning-position)))
27917
b54fc217c5c8 (dired-filename-at-point): Add `@' to valid
Gerd Moellmann <gerd@gnu.org>
parents: 27258
diff changeset
1734 "/"))
b54fc217c5c8 (dired-filename-at-point): Add `@' to valid
Gerd Moellmann <gerd@gnu.org>
parents: 27258
diff changeset
1735 (goto-char start)
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1736 (if (string-match "[/~]" (char-to-string (preceding-char)))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1737 (setq start (1- start)))
49485
7c879dba798f (dired-filename-at-point): Fix last change and tidy up.
Dave Love <fx@gnu.org>
parents: 49271
diff changeset
1738 (re-search-forward (concat "\\=[" filename-chars "]*") nil t))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1739
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1740 (error "No file found around point!"))
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1741
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1742 ;; Return string.
27917
b54fc217c5c8 (dired-filename-at-point): Add `@' to valid
Gerd Moellmann <gerd@gnu.org>
parents: 27258
diff changeset
1743 (expand-file-name (concat prefix (buffer-substring start (point)))))))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1744
8078
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1745 (defun read-filename-at-point (prompt)
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1746 "Return filename prompting with PROMPT with completion.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1747 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
1748 (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
1749 (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
1750 (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
1751 (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
1752 guess
1dd92ac02141 (dired-x-hands-off-my-keys): New user-defined variable.
Richard M. Stallman <rms@gnu.org>
parents: 7865
diff changeset
1753 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
1754 (read-file-name prompt default-directory)))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1755
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13975
diff changeset
1756 ;;; BUG REPORTS
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1757
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1758 ;; Fixme: get rid of this later.
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1759
94762
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1760 ;; This section is provided for reports. It uses Barry A. Warsaw's
64e725031836 Fix up commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
1761 ;; reporter.el which is bundled with GNU Emacs v19.
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1762
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1763 (defconst dired-x-help-address "bug-gnu-emacs@gnu.org"
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1764 "Address(es) accepting submission of reports on dired-x.el.")
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1765
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1766 (defconst dired-x-variable-list
6694
3ba55de6f14f New version from maintainer.
Karl Heuer <kwzh@gnu.org>
parents: 5426
diff changeset
1767 (list
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1768 'dired-bind-vm
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1769 'dired-vm-read-only-folders
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1770 'dired-bind-jump
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1771 'dired-bind-info
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1772 'dired-bind-man
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1773 'dired-find-subdir
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1774 'dired-enable-local-variables
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1775 'dired-local-variables-file
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1776 'dired-guess-shell-gnutar
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1777 'dired-guess-shell-gzip-quiet
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1778 'dired-guess-shell-znew-switches
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1779 'dired-guess-shell-alist-user
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1780 'dired-clean-up-buffers-too
55927
db4ee12d7def (dired-omit-mode): Rename from dired-omit-files-p. Use define-minor-mode to define it.
Lars Hansen <larsh@soem.dk>
parents: 54662
diff changeset
1781 'dired-omit-mode
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1782 'dired-omit-files
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1783 'dired-omit-extensions
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1784 )
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1785 "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
1786
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1787 (defun dired-x-submit-report ()
64537
725c23089fbb (virtual-dired): Declare with `defalias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64443
diff changeset
1788 "Submit via `reporter.el' a bug report on program.
105170
f8ba8d6fd250 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 104943
diff changeset
1789 Send report on `dired-x-file' version `dired-x-version', to
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1790 `dired-x-maintainer' at address `dired-x-help-address' listing
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1791 variables `dired-x-variable-list' in the message."
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1792 (interactive)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1793
35032
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1794 (reporter-submit-bug-report
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1795 dired-x-help-address ; address
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1796 "dired-x" ; pkgname
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1797 dired-x-variable-list ; varlist
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1798 nil nil ; pre-/post-hooks
d8d44de5a247 Doc fixes. Maintainer change.
Dave Love <fx@gnu.org>
parents: 34915
diff changeset
1799 ""))
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1800
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1801
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1802 ;; As Barry Warsaw would say: "This might be useful..."
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1803 (provide 'dired-x)
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1804
104943
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1805 ;; Local Variables:
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1806 ;; byte-compile-dynamic: t
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1807 ;; generated-autoload-file: "dired.el"
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1808 ;; End:
eb30601bacc5 Put autoloads in dired.el rather than loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 102265
diff changeset
1809
66469
8c968e06d0c0 Change Maintainer field.
Romain Francoise <romain@orebokech.com>
parents: 66437
diff changeset
1810 ;; arch-tag: 71a43ba2-7a00-4793-a028-0613dd7765ae
5426
a0e483109eaa entered into RCS
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1811 ;;; dired-x.el ends here