annotate lisp/dired-x.el @ 56905:661d52db56de

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