annotate lisp/efs/dired-fsf.el @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents 8fc7fe29b841
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
2 ;;
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
3 ;; File: dired-fsf.el
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
4 ;; Dired Version: $Revision: 1.1 $
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
5 ;; RCS:
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
6 ;; Description: dired functions for V19 of the original GNU Emacs from FSF
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
7 ;; Created: Sat Jan 29 01:38:49 1994 by sandy on ibm550
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
8 ;;
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
10
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
11 ;;;; Requirements and provisions
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
12 (provide 'dired-fsf)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
13 (require 'dired)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
14
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
15 ;;;; Variables to set.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
16
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
17 (setq dired-modeline-tracking-cmds '(mouse-set-point))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
18
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
19 ;;;; Support for text properties
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
20
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
21 (defun dired-insert-set-properties (beg end)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
22 ;; Sets the text properties for the file names.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
23 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
24 (goto-char beg)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
25 (beginning-of-line)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
26 (let ((eol (save-excursion (end-of-line) (point)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
27 (bol (point)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
28 (while (< (point) end)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
29 (setq eol (save-excursion (end-of-line) (point)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
30 (if (dired-manual-move-to-filename nil bol eol)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
31 (dired-set-text-properties
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
32 (point) (dired-manual-move-to-end-of-filename nil bol eol)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
33 (goto-char (setq bol (1+ eol)))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
34
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
35 (defun dired-remove-text-properties (start end &optional object)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
36 ;; Removes text properties. Called in popup buffers.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
37 (remove-text-properties start end '(mouse-face dired-file-name) object))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
38
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
39 (defun dired-set-text-properties (start end)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
40 ;; Sets dired's text properties
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
41 (put-text-property start end 'mouse-face 'highlight)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
42 (put-text-property start end 'dired-file-name t))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
43
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
44 (defun dired-move-to-filename (&optional raise-error bol eol)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
45 (or bol (setq bol (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
46 (skip-chars-backward "^\n\r")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
47 (point))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
48 (or eol (setq eol (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
49 (skip-chars-forward "^\n\r")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
50 (point))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
51 (goto-char bol)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
52 (let ((spot (next-single-property-change bol 'dired-file-name nil eol)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
53 (if (= spot eol)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
54 (if raise-error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
55 (error "No file on this line")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
56 nil)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
57 (goto-char spot))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
58
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
59 (defun dired-move-to-end-of-filename (&optional no-error bol eol)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
60 ;; Assumes point is at beginning of filename,
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
61 ;; thus the rwx bit re-search-backward below will succeed in *this*
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
62 ;; line if at all. So, it should be called only after
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
63 ;; (dired-move-to-filename t).
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
64 ;; On failure, signals an error (with non-nil NO-ERROR just returns nil).
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
65 (or eol (setq eol (save-excursion (skip-chars-forward "^\r\n") (point))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
66 (and
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
67 (null no-error)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
68 selective-display
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
69 (or bol (setq bol (save-excursion (skip-chars-backward "^\r\n") (point))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
70 (eq (char-after (1- bol)) ?\r)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
71 (cond
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
72 ((dired-subdir-hidden-p (dired-current-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
73 (error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
74 (substitute-command-keys
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
75 "File line is hidden. Type \\[dired-hide-subdir] to unhide.")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
76 ((error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
77 (substitute-command-keys
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
78 "File line is omitted. Type \\[dired-omit-toggle] to un-omit.")))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
79 (if (get-text-property (point) 'dired-file-name nil)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
80 (goto-char (next-single-property-change (point) 'dired-file-name
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
81 nil eol))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
82 (and (null no-error) (error "No file on this line"))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
83
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
84 ;; Text properties do not work properly in pre-19.26.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
85
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
86 (if (or (not (boundp 'emacs-major-version))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
87 (= emacs-major-version 19))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
88 (progn
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
89 (if (not (boundp 'emacs-minor-version))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
90 ;; Argument structure of where-is-internal went through some
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
91 ;; changes.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
92 (defun dired-key-description (cmd &rest prefixes)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
93 ;; Return a key description string for a menu.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
94 ;; If prefixes are given, they should be either strings,
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
95 ;; integers, or 'universal-argument.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
96 (let ((key (where-is-internal cmd dired-mode-map nil t)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
97 (if key
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
98 (key-description
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
99 (apply 'vconcat
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
100 (append
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
101 (mapcar
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
102 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
103 (lambda (x)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
104 (if (eq x 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
105 (where-is-internal 'universal-argument
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
106 dired-mode-map nil t)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
107 x)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
108 prefixes)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
109 (list key))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
110 ""))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
111 (if (or (not (boundp 'emacs-minor-version))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
112 (< emacs-minor-version 26))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
113 (progn
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
114 (fset 'dired-insert-set-properties 'ignore)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
115 (fset 'dired-remove-text-properties 'ignore)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
116 (fset 'dired-set-text-properties 'ignore)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
117 (fset 'dired-move-to-filename 'dired-manual-move-to-filename)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
118 (fset 'dired-move-to-end-of-filename
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
119 'dired-manual-move-to-end-of-filename)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
120
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
121 ;;;; Keymaps
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
122
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
123 ;;; Caching Menus
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
124
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
125 (defun dired-menu-item (menu-item cmd width &rest prefixes)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
126 ;; Return a key description string for a menu. If prefixes are given,
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
127 ;; they should be either characters, or 'universal-argument.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
128 (let ((desc (apply 'dired-key-description cmd prefixes)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
129 (if (string-equal desc "")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
130 menu-item
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
131 (concat menu-item
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
132 (make-string
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
133 (max (- width (length menu-item) (length desc) 2) 1) 32)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
134 "(" desc ")"))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
135
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
136 (defun dired-cache-key (keymap event cmd &rest prefixes)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
137 ;; Caches a keybinding for cms in a menu keymap.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
138 ;; This is able to handle prefix keys.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
139 (let ((desc (apply 'dired-key-description cmd prefixes)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
140 (or (string-equal desc "")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
141 (progn
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
142 (let ((elt (assq event keymap)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
143 (if elt
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
144 (let ((tail (cdr elt)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
145 (setcdr tail
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
146 (cons
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
147 (cons
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
148 nil (concat " (" desc ")"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
149 (cdr tail))))))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
150
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
151 ;; Don't cache keys in old emacs versions. Is 23 the right cut-off point?
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
152 (if (or (not (boundp 'emacs-minor-version))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
153 (< emacs-minor-version 23))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
154 (fset 'dired-cache-key 'ignore))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
155
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
156 (defvar dired-visit-popup-menu nil)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
157 ;; Menus of commands in the Visit popup menu.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
158 (defvar dired-do-popup-menu nil)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
159 ;; Menu of commands in the dired Do popup menu.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
160
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
161 ;; Menus for the menu bar.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
162 (defvar dired-subdir-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
163 (cons "Subdir" (make-sparse-keymap "Subdir")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
164 (defvar dired-mark-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
165 (cons "Mark" (make-sparse-keymap "Mark")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
166 (defvar dired-do-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
167 (cons "Do" (make-sparse-keymap "Do")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
168 (defvar dired-regex-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
169 (cons "Regexp" (make-sparse-keymap "Regex")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
170 (defvar dired-look-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
171 (cons "Look" (make-sparse-keymap "Look")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
172 (defvar dired-sort-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
173 (cons "Sort" (make-sparse-keymap "Sort")))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
174 (defvar dired-help-menu nil)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
175
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
176 (defun dired-setup-menus ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
177
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
178 ;; popup menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
179
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
180 (setq dired-visit-popup-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
181 (list
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
182 (cons (dired-menu-item "Find File" 'dired-find-file 35)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
183 'dired-advertised-find-file)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
184 (cons (dired-menu-item "Find in Other Window"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
185 'dired-find-file-other-window 35)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
186 'dired-find-file-other-window)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
187 (cons (dired-menu-item "Find in Other Frame"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
188 'dired-find-file-other-frame 35)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
189 'dired-find-file-other-frame)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
190 (cons (dired-menu-item "View File" 'dired-view-file 35)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
191 'dired-view-file)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
192 (cons (dired-menu-item "Display in Other Window"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
193 'dired-find-file-other-window 35
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
194 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
195 'dired-display-file)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
196
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
197 ;; Operate popup menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
198
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
199 (setq dired-do-popup-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
200 (list
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
201 (cons (dired-menu-item "Copy to..." 'dired-do-copy 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
202 'dired-do-copy)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
203 (cons (dired-menu-item "Rename to..." 'dired-do-rename 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
204 'dired-do-rename)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
205 (cons (dired-menu-item "Compress/Uncompress" 'dired-do-compress
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
206 35 1) 'dired-do-compress)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
207 (cons (dired-menu-item "Uuencode/Uudecode" 'dired-do-uucode
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
208 35 1) 'dired-do-uucode)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
209 (cons (dired-menu-item "Change Mode..." 'dired-do-chmod 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
210 'dired-do-chmod)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
211 (cons (dired-menu-item "Change Owner..." 'dired-do-chown 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
212 'dired-do-chown)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
213 (cons (dired-menu-item "Change Group..." 'dired-do-chgrp 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
214 'dired-do-chgrp)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
215 (cons (dired-menu-item "Load" 'dired-do-load 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
216 'dired-do-load)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
217 (cons (dired-menu-item "Byte-compile" 'dired-do-byte-compile 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
218 'dired-do-byte-compile)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
219 (cons (dired-menu-item "Hardlink to..." 'dired-do-hardlink 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
220 'dired-do-hardlink)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
221 (cons (dired-menu-item "Symlink to..." 'dired-do-symlink 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
222 'dired-do-symlink)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
223 (cons (dired-menu-item "Relative Symlink to..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
224 'dired-do-relsymlink 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
225 'dired-do-relsymlink)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
226 (cons (dired-menu-item "Shell Command..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
227 'dired-do-shell-command 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
228 'dired-do-shell-command)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
229 (cons (dired-menu-item "Background Shell Command..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
230 'dired-do-background-shell-command 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
231 'dired-do-background-shell-command)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
232 (cons (dired-menu-item "Delete" 'dired-do-delete 35 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
233 'dired-do-delete)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
234
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
235 ;; Subdir Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
236
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
237 (define-key dired-mode-map [menu-bar subdir] dired-subdir-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
238 (define-key dired-mode-map [menu-bar subdir uncompress-subdir-files]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
239 (cons "Uncompress Compressed Files"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
240 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
241 (lambda () (interactive) (dired-compress-subdir-files t)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
242 (dired-cache-key dired-subdir-menu 'uncompress-subdir-files
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
243 'dired-compress-subdir-files 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
244 (define-key dired-mode-map [menu-bar subdir compress-subdir-files]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
245 '("Compress Uncompressed Files" . dired-compress-subdir-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
246 (define-key dired-mode-map [menu-bar subdir flag]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
247 '("Flag Files for Deletion" . dired-flag-subdir-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
248 (define-key dired-mode-map [menu-bar subdir mark]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
249 '("Mark Files" . dired-mark-subdir-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
250 (define-key dired-mode-map [menu-bar subdir redisplay]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
251 '("Redisplay Subdir" . dired-redisplay-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
252 (define-key dired-mode-map [menu-bar subdir subdir-separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
253 '("-- Commands on All Files in Subdir --"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
254 (define-key dired-mode-map [menu-bar subdir kill-subdir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
255 '("Kill This Subdir" . dired-kill-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
256 (define-key dired-mode-map [menu-bar subdir create-directory]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
257 '("Create Directory..." . dired-create-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
258 (define-key dired-mode-map [menu-bar subdir insert]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
259 '("Insert This Subdir" . dired-maybe-insert-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
260 (define-key dired-mode-map [menu-bar subdir down-dir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
261 '("Down Dir" . dired-down-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
262 (define-key dired-mode-map [menu-bar subdir up-dir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
263 '("Up Dir" . dired-up-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
264 (define-key dired-mode-map [menu-bar subdir prev-dirline]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
265 '("Prev Dirline" . dired-prev-dirline))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
266 (define-key dired-mode-map [menu-bar subdir next-dirline]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
267 '("Next Dirline" . dired-next-dirline))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
268 (define-key dired-mode-map [menu-bar subdir prev-subdir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
269 '("Prev Subdir" . dired-prev-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
270 (define-key dired-mode-map [menu-bar subdir next-subdir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
271 '("Next Subdir" . dired-next-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
272
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
273 ;; Mark Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
274
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
275 (define-key dired-mode-map [menu-bar mark] dired-mark-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
276 (define-key dired-mode-map [menu-bar mark mark-from-compilation-buffer]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
277 '("Mark Files from Compile Buffer..." . dired-mark-files-compilation-buffer))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
278 (define-key dired-mode-map [menu-bar mark mark-from-other-buffer]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
279 '("Mark Files from Other Dired" .
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
280 dired-mark-files-from-other-dired-buffer))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
281 (define-key dired-mode-map [menu-bar mark mark-separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
282 '("--"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
283 (define-key dired-mode-map [menu-bar mark marker-char-right]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
284 '("Marker stack right" . dired-marker-stack-right))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
285 (define-key dired-mode-map [menu-bar mark marker-char-left]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
286 '("Marker stack left" . dired-marker-stack-left))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
287 (define-key dired-mode-map [menu-bar mark restore-marker]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
288 '("Restore marker char" . dired-restore-marker-char))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
289 (define-key dired-mode-map [menu-bar mark add-marker]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
290 '("Set new marker char..." . dired-set-marker-char))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
291 (define-key dired-mode-map [menu-bar mark auto-save-files]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
292 '("Flag Auto-save Files" . dired-flag-auto-save-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
293 (define-key dired-mode-map [menu-bar mark backup-files]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
294 '("Flag Backup Files" . dired-flag-backup-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
295 (define-key dired-mode-map [menu-bar mark executables]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
296 '("Mark Executables" . dired-mark-executables))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
297 (define-key dired-mode-map [menu-bar mark directory]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
298 '("Mark Old Backups" . dired-clean-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
299 (define-key dired-mode-map [menu-bar mark directories]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
300 '("Mark Directories" . dired-mark-directories))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
301 (define-key dired-mode-map [menu-bar mark symlinks]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
302 '("Mark Symlinks" . dired-mark-symlinks))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
303 (define-key dired-mode-map [menu-bar mark toggle]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
304 (cons "Toggle Marks..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
305 (function (lambda () (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
306 (let ((current-prefix-arg t))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
307 (call-interactively 'dired-change-marks))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
308 (dired-cache-key dired-mark-menu 'toggle 'dired-change-marks
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
309 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
310 (define-key dired-mode-map [menu-bar mark unmark-all]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
311 '("Unmark All" . dired-unmark-all-files))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
312 (define-key dired-mode-map [menu-bar mark marks]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
313 '("Change Marks..." . dired-change-marks))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
314 (define-key dired-mode-map [menu-bar mark prev]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
315 '("Previous Marked" . dired-prev-marked-file))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
316 (define-key dired-mode-map [menu-bar mark next]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
317 '("Next Marked" . dired-next-marked-file))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
318
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
319 ;; Do Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
320
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
321 (define-key dired-mode-map [menu-bar do]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
322 dired-do-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
323 (define-key dired-mode-map [menu-bar do do-popup]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
324 (cons "Operate on file menu >"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
325 'dired-do-popup-menu-internal))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
326 (dired-cache-key dired-do-menu 'do-popup
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
327 'dired-do-popup-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
328 (define-key dired-mode-map [menu-bar do visit-popup]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
329 (cons "Visit file menu >"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
330 'dired-visit-popup-menu-internal))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
331 (dired-cache-key dired-do-menu 'visit-popup
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
332 'dired-visit-popup-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
333 (define-key dired-mode-map [menu-bar do delete]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
334 '("Delete Marked Files" . dired-do-delete))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
335 (define-key dired-mode-map [menu-bar do background-command]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
336 '("Background Shell Command..." . dired-do-background-shell-command))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
337 (define-key dired-mode-map [menu-bar do command]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
338 '("Shell Command..." . dired-do-shell-command))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
339 (define-key dired-mode-map [menu-bar do symlink]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
340 '("Symlink to..." . dired-do-symlink))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
341 (define-key dired-mode-map [menu-bar do hardlink]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
342 '("Hardlink to..." . dired-do-hardlink))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
343 (define-key dired-mode-map [menu-bar do compile]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
344 '("Byte-compile" . dired-do-byte-compile))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
345 (define-key dired-mode-map [menu-bar do load]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
346 '("Load" . dired-do-load))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
347 (define-key dired-mode-map [menu-bar do chgrp]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
348 '("Change Group..." . dired-do-chgrp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
349 (define-key dired-mode-map [menu-bar do chown]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
350 '("Change Owner..." . dired-do-chown))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
351 (define-key dired-mode-map [menu-bar do chmod]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
352 '("Change Mode..." . dired-do-chmod))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
353 (define-key dired-mode-map [menu-bar do print]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
354 '("Print..." . dired-do-print))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
355 (define-key dired-mode-map [menu-bar do uucode]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
356 '("Uuencode/Uudecode" . dired-do-uucode))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
357 (define-key dired-mode-map [menu-bar do compress]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
358 '("Compress/Uncompress" . dired-do-compress))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
359 (define-key dired-mode-map [menu-bar do expunge]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
360 '("Expunge File Flagged for Deletion" . dired-expunge-deletions))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
361 (define-key dired-mode-map [menu-bar do rename]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
362 '("Rename to..." . dired-do-rename))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
363 (define-key dired-mode-map [menu-bar do copy]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
364 '("Copy to..." . dired-do-copy))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
365
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
366 ;; Regex Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
367
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
368 (define-key dired-mode-map [menu-bar regex] dired-regex-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
369 (define-key dired-mode-map [menu-bar regex show-omit-regexp]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
370 (cons "Show Omit Regex"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
371 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
372 (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
373 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
374 (let ((current-prefix-arg 0))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
375 (call-interactively 'dired-add-omit-regexp))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
376 (dired-cache-key dired-regex-menu 'show-omit-regexp
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
377 'dired-add-omit-regexp 0)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
378 (define-key dired-mode-map [menu-bar regex remove-omit-extension]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
379 (cons "Remove Omit Extension..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
380 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
381 (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
382 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
383 (let ((current-prefix-arg '(16)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
384 (call-interactively 'dired-add-omit-regexp))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
385 (dired-cache-key dired-regex-menu 'remove-omit-extension
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
386 'dired-add-omit-regexp 'universal-argument
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
387 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
388 (define-key dired-mode-map [menu-bar regex add-omit-extension]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
389 (cons "Add Omit Extension..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
390 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
391 (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
392 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
393 (let ((current-prefix-arg '(4)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
394 (call-interactively 'dired-add-omit-regexp))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
395 (dired-cache-key dired-regex-menu 'add-omit-extension
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
396 'dired-add-omit-regexp 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
397 (define-key dired-mode-map [menu-bar regex remove-omit-regexp]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
398 (cons "Remove Omit Regex..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
399 (function
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
400 (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
401 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
402 (let ((current-prefix-arg 1))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
403 (call-interactively 'dired-add-omit-regexp))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
404 (dired-cache-key dired-regex-menu 'remove-omit-regexp
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
405 'dired-add-omit-regexp 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
406 (define-key dired-mode-map [menu-bar regex add-omit-regexp]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
407 '("Add Omit Regex..." . dired-add-omit-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
408 (define-key dired-mode-map [menu-bar regex separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
409 '("--"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
410 (define-key dired-mode-map [menu-bar regex relsymlink]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
411 '("Relative Symlink..." . dired-do-relsymlink-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
412 (define-key dired-mode-map [menu-bar regex symlink]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
413 '("Symlink..." . dired-do-symlink-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
414 (define-key dired-mode-map [menu-bar regex hardlink]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
415 '("Hardlink..." . dired-do-hardlink-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
416 (define-key dired-mode-map [menu-bar regex rename]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
417 '("Rename..." . dired-do-rename-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
418 (define-key dired-mode-map [menu-bar regex copy]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
419 '("Copy..." . dired-do-copy-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
420 (define-key dired-mode-map [menu-bar regex upcase]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
421 '("Upcase" . dired-upcase))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
422 (define-key dired-mode-map [menu-bar regex downcase]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
423 '("Downcase" . dired-downcase))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
424 (define-key dired-mode-map [menu-bar regex dired-flag-extension]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
425 '("Flag Files with Extension..." . dired-flag-extension))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
426 (define-key dired-mode-map [menu-bar regex flag]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
427 '("Flag..." . dired-flag-files-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
428 (define-key dired-mode-map [menu-bar regex mark-extension]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
429 '("Mark Files with Extension..." . dired-mark-extension))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
430 (define-key dired-mode-map [menu-bar regex mark]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
431 '("Mark..." . dired-mark-files-regexp))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
432
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
433 ;; Look Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
434
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
435 (define-key dired-mode-map [menu-bar look] dired-look-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
436 (define-key dired-mode-map [menu-bar look patch]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
437 '("Patch File" . dired-epatch))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
438 (define-key dired-mode-map [menu-bar look ediff]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
439 '("Ediff Files..." . dired-ediff))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
440 (define-key dired-mode-map [menu-bar look emerge-with-ancestor]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
441 '("Merge Files Having Common Ancestor..." . dired-emerge-with-ancestor))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
442 (define-key dired-mode-map [menu-bar look emerge]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
443 '("Merge Files..." . dired-emerge))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
444 (define-key dired-mode-map [menu-bar look backup-diff]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
445 '("Diff with Backup" . dired-backup-diff))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
446 (define-key dired-mode-map [menu-bar look diff]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
447 '("Diff File..." . dired-diff))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
448 ;; Put in a separator line.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
449 (define-key dired-mode-map [menu-bar look look-separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
450 '("--"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
451 (define-key dired-mode-map [menu-bar look tags-query-replace]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
452 '("Tags Query Replace..." . dired-do-tags-query-replace))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
453 (define-key dired-mode-map [menu-bar look tags-search]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
454 '("Tags Search for..." . dired-do-tags-search))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
455 (define-key dired-mode-map [menu-bar look grep]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
456 '("Grep for..." . dired-do-grep))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
457
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
458 ;; Sort Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
459
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
460 (define-key dired-mode-map [menu-bar sort] dired-sort-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
461 (define-key dired-mode-map [menu-bar sort redisplay-killed]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
462 (cons "Redisplay Killed Lines"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
463 (function (lambda () (interactive) (dired-do-kill-file-lines 0)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
464 (dired-cache-key dired-sort-menu 'redisplay-killed
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
465 'dired-do-kill-file-lines 0)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
466 (define-key dired-mode-map [menu-bar sort kill]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
467 '("Kill Marked Lines" . dired-do-kill-file-lines))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
468 (define-key dired-mode-map [menu-bar sort toggle-omit]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
469 '("Toggle Omit" . dired-omit-toggle))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
470 (define-key dired-mode-map [menu-bar sort hide-subdir]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
471 '("Hide Subdir" . dired-hide-subdir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
472 (define-key dired-mode-map [menu-bar sort hide-all]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
473 '("Hide All Subdirs" . dired-hide-all))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
474 (define-key dired-mode-map [menu-bar sort sort-separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
475 '("--"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
476 (define-key dired-mode-map [menu-bar sort entire-edit]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
477 (cons "Edit Switches for Entire Buffer..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
478 (function (lambda () (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
479 (dired-sort-toggle-or-edit '(16))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
480 (dired-cache-key dired-sort-menu 'entire-edit
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
481 'dired-sort-toggle-or-edit 'universal-argument
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
482 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
483 (define-key dired-mode-map [menu-bar sort entire-name]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
484 (cons "Sort Entire Buffer by Name"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
485 (function (lambda () (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
486 (dired-sort-toggle-or-edit 'name)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
487 (dired-cache-key dired-sort-menu 'entire-name 'dired-sort-toggle-or-edit
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
488 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
489 (define-key dired-mode-map [menu-bar sort entire-date]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
490 (cons "Sort Entire Buffer by Date"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
491 (function (lambda () (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
492 (dired-sort-toggle-or-edit 'date)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
493 (dired-cache-key dired-sort-menu 'entire-date 'dired-sort-toggle-or-edit
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
494 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
495 (define-key dired-mode-map [menu-bar sort new-edit]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
496 (cons "Edit Default Switches for Inserted Subdirs..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
497 (function (lambda () (interactive) (dired-sort-toggle-or-edit 2)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
498 (dired-cache-key dired-sort-menu 'new-edit 'dired-sort-toggle-or-edit 2)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
499 (define-key dired-mode-map [menu-bar sort edit]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
500 (cons "Edit Switches for Current Subdir..."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
501 (function (lambda () (interactive) (dired-sort-toggle-or-edit 1)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
502 (dired-cache-key dired-sort-menu 'edit 'dired-sort-toggle-or-edit 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
503 (define-key dired-mode-map [menu-bar sort show]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
504 (cons "Show Current Switches"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
505 (function (lambda () (interactive) (dired-sort-toggle-or-edit 0)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
506 (dired-cache-key dired-sort-menu 'show 'dired-sort-toggle-or-edit 0)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
507 (define-key dired-mode-map [menu-bar sort toggle]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
508 '("Toggle Current Subdir by Name/Date" . dired-sort-toggle-or-edit))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
509
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
510 ;; Help Menu-bar Menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
511
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
512 (or dired-help-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
513 (setq dired-help-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
514 (if (and (boundp 'menu-bar-help-menu) (keymapp menu-bar-help-menu))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
515 (cons "Help" (cons 'keymap (cdr menu-bar-help-menu)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
516 (cons "Help" (make-sparse-keymap "Help")))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
517 (define-key dired-mode-map [menu-bar dired-help] dired-help-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
518 (define-key dired-mode-map [menu-bar dired-help help-separator]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
519 '("--"))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
520 (define-key dired-mode-map [menu-bar dired-help dired-bug]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
521 '("Report Dired Bug" . dired-report-bug))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
522 (define-key dired-mode-map [menu-bar dired-help dired-var-apropos]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
523 (cons "Dired Variable Apropos"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
524 (function (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
525 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
526 (let ((current-prefix-arg t))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
527 (call-interactively 'dired-apropos))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
528 (dired-cache-key dired-help-menu 'dired-var-apropos
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
529 'dired-apropos 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
530 (define-key dired-mode-map [menu-bar dired-help dired-apropos]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
531 '("Dired Command Apropos" . dired-apropos))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
532 (define-key dired-mode-map [menu-bar dired-help dired-info]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
533 (cons "Dired Info Manual"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
534 (function (lambda ()
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
535 (interactive)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
536 (dired-describe-mode t)))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
537 (dired-cache-key dired-help-menu 'dired-info 'dired-describe-mode
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
538 'universal-argument)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
539 (define-key dired-mode-map [menu-bar dired-help dired-describe-mode]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
540 '("Describe Dired" . dired-describe-mode))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
541 (define-key dired-mode-map [menu-bar dired-help dired-summary]
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
542 '("Dired Summary Help" . dired-summary)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
543
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
544 (add-hook 'dired-setup-keys-hook 'dired-setup-menus)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
545
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
546 ;;; Mouse functions
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
547
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
548 (defun dired-mouse-find-file (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
549 "In dired, visit the file or directory name you click on."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
550 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
551 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
552 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
553 (if dired-subdir-alist
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
554 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
555 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
556 (dired-find-file))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
557 (error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
558 (concat "dired-subdir-alist seems to be mangled. "
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
559 (substitute-command-keys
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
560 "\\<dired-mode-map>Try dired-revert (\\[dired-revert])."))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
561
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
562 (defun dired-mouse-mark (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
563 "In dired, mark the file name that you click on.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
564 If the file name is already marked, this unmarks it."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
565 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
566 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
567 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
568 (if dired-subdir-alist
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
569 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
570 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
571 (beginning-of-line)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
572 (if (looking-at dired-re-mark)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
573 (dired-unmark 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
574 (dired-mark 1)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
575 (error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
576 (concat "dired-subdir-alist seems to be mangled. "
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
577 (substitute-command-keys
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
578 "\\<dired-mode-map>Try dired-revert (\\[dired-revert])."))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
579
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
580 (defun dired-mouse-flag (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
581 "In dired, flag for deletion the file name that you click on.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
582 If the file name is already flag, this unflags it."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
583 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
584 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
585 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
586 (if dired-subdir-alist
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
587 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
588 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
589 (beginning-of-line)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
590 (if (char-equal (following-char) dired-del-marker)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
591 (dired-unflag 1)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
592 (dired-flag-file-deletion 1)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
593 (error
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
594 (concat "dired-subdir-alist seems to be mangled. "
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
595 (substitute-command-keys
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
596 "\\<dired-mode-map>Try dired-revert (\\[dired-revert])."))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
597
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
598 (defun dired-mouse-get-target (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
599 "In dired, put a copy of the selected directory in the active minibuffer."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
600 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
601 (let ((obuff (current-buffer))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
602 mb)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
603 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
604 (if (and dired-subdir-alist (setq mb (dired-get-active-minibuffer-window)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
605 (let (dir)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
606 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
607 (setq dir (dired-current-directory))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
608 (select-window mb)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
609 (set-buffer (window-buffer mb))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
610 (erase-buffer)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
611 (insert dir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
612 (set-buffer obuff)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
613 (if mb
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
614 (error "No directory specified")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
615 (error "No active minibuffer")))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
616
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
617 (defun dired-visit-popup-menu (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
618 "Popup a menu to visit the moused file."
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
619 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
620 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
621 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
622 (save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
623 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
624 (dired-visit-popup-menu-internal event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
625
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
626 (defun dired-visit-popup-menu-internal (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
627 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
628 (let ((fn (dired-get-filename 'no-dir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
629 fun)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
630 (dired-remove-text-properties 0 (length fn) fn)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
631 (setq fun (x-popup-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
632 event
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
633 (list "Visit popup menu"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
634 (cons
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
635 (concat "Visit " fn " with")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
636 dired-visit-popup-menu))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
637 (if fun (funcall fun))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
638
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
639 (defun dired-do-popup-menu (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
640 ;; Pop up a menu do an operation on the moused file.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
641 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
642 (let ((obuff (current-buffer)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
643 (unwind-protect
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
644 (progn
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
645 (set-buffer (window-buffer (posn-window (event-end event))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
646 (dired-save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
647 (goto-char (posn-point (event-end event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
648 (dired-do-popup-menu-internal event)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
649 (set-buffer obuff))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
650
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
651 (defun dired-do-popup-menu-internal (event)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
652 (interactive "e")
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
653 (let ((fn (dired-get-filename 'no-dir))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
654 fun)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
655 (dired-remove-text-properties 0 (length fn) fn)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
656 (setq fun (x-popup-menu
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
657 event
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
658 (list "Do popup menu"
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
659 (cons
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
660 (concat "Do operation on " fn)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
661 dired-do-popup-menu))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
662 (dired-save-excursion
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
663 (if fun (let ((current-prefix-arg 1))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
664 (call-interactively fun))))))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
665
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
666 ;;; Key maps
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
667
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
668 ;; Get rid of the Edit menu bar item to save space.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
669 (define-key dired-mode-map [menu-bar edit] 'undefined)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
670 ;; We have our own help item
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
671 (define-key dired-mode-map [menu-bar help] 'undefined)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
672 (define-key dired-mode-map [mouse-2] 'dired-mouse-find-file)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
673 (define-key dired-mode-map [S-mouse-1] 'dired-mouse-mark)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
674 (define-key dired-mode-map [C-S-mouse-1] 'dired-mouse-flag)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
675 (define-key dired-mode-map [down-mouse-3] 'dired-visit-popup-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
676 ;; This can be useful in dired, so move to double click.
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
677 (define-key dired-mode-map [double-mouse-3] 'mouse-save-then-kill)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
678 (define-key dired-mode-map [C-down-mouse-2] 'dired-do-popup-menu)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
679 (define-key dired-mode-map [M-mouse-2] 'dired-mouse-get-target)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
680
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
681 (or (memq 'dired-help menu-bar-final-items)
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
682 (setq menu-bar-final-items (cons 'dired-help menu-bar-final-items)))
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
683
8fc7fe29b841 Import from CVS: tag r19-15b94
cvs
parents:
diff changeset
684 ;;; end of dired-fsf.el