aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Teirlinck2004-03-27 02:09:45 +0000
committerLuc Teirlinck2004-03-27 02:09:45 +0000
commit7b0a86abd0e209e7b290ae9c8f7a176517efe9d1 (patch)
tree775e1abfcbdad596c63368552adb08b4502a4df0
parentbdc52f22de7e3026a73c1972b35f0d5b3f628ea1 (diff)
downloademacs-7b0a86abd0e209e7b290ae9c8f7a176517efe9d1.tar.gz
emacs-7b0a86abd0e209e7b290ae9c8f7a176517efe9d1.zip
(Buffer-menu-revert-function): Make it suitable for
Auto Revert mode. (Buffer-menu-files-only): New variable. (Buffer-menu-toggle-files-only): New function. (Buffer-menu-mode-map): Bind it to `T'. (Buffer-menu-mode): Mention `T' in docstring. Set buffer-stale-function. (list-buffers-noselect): Mark buffer non-modified and set Buffer-menu-files-only.
-rw-r--r--lisp/buff-menu.el34
1 files changed, 31 insertions, 3 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 02f93a0cff2..a1b0f4093c7 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -99,6 +99,14 @@ nil for default sorting by visited order.")
99(defvar Buffer-menu-mode-map nil 99(defvar Buffer-menu-mode-map nil
100 "Local keymap for `Buffer-menu-mode' buffers.") 100 "Local keymap for `Buffer-menu-mode' buffers.")
101 101
102(defvar Buffer-menu-files-only nil
103 "Non-nil if the current buffer-menu lists only file buffers.
104This variable determines whether reverting the buffer lists only
105file buffers. It affects both manual reverting and reverting by
106Auto Revert Mode.")
107
108(make-variable-buffer-local 'Buffer-menu-files-only)
109
102(if Buffer-menu-mode-map 110(if Buffer-menu-mode-map
103 () 111 ()
104 (setq Buffer-menu-mode-map (make-keymap)) 112 (setq Buffer-menu-mode-map (make-keymap))
@@ -131,6 +139,7 @@ nil for default sorting by visited order.")
131 (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury) 139 (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury)
132 (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert) 140 (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert)
133 (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view) 141 (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view)
142 (define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only)
134 (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select) 143 (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select)
135) 144)
136 145
@@ -167,13 +176,16 @@ Letters do not insert themselves; instead, they are commands.
167\\[Buffer-menu-backup-unmark] -- back up a line and remove marks. 176\\[Buffer-menu-backup-unmark] -- back up a line and remove marks.
168\\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line. 177\\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line.
169\\[Buffer-menu-revert] -- update the list of buffers. 178\\[Buffer-menu-revert] -- update the list of buffers.
179\\[Buffer-menu-toggle-files-only] -- toggle whether the menu displays only file buffers.
170\\[Buffer-menu-bury] -- bury the buffer listed on this line." 180\\[Buffer-menu-bury] -- bury the buffer listed on this line."
171 (kill-all-local-variables) 181 (kill-all-local-variables)
172 (use-local-map Buffer-menu-mode-map) 182 (use-local-map Buffer-menu-mode-map)
173 (setq major-mode 'Buffer-menu-mode) 183 (setq major-mode 'Buffer-menu-mode)
174 (setq mode-name "Buffer Menu") 184 (setq mode-name "Buffer Menu")
175 (make-local-variable 'revert-buffer-function) 185 (set (make-local-variable 'revert-buffer-function)
176 (setq revert-buffer-function 'Buffer-menu-revert-function) 186 'Buffer-menu-revert-function)
187 (set (make-local-variable 'buffer-stale-function)
188 #'(lambda (&optional noconfirm) t))
177 (setq truncate-lines t) 189 (setq truncate-lines t)
178 (setq buffer-read-only t) 190 (setq buffer-read-only t)
179 (run-hooks 'buffer-menu-mode-hook)) 191 (run-hooks 'buffer-menu-mode-hook))
@@ -184,7 +196,21 @@ Letters do not insert themselves; instead, they are commands.
184 (revert-buffer)) 196 (revert-buffer))
185 197
186(defun Buffer-menu-revert-function (ignore1 ignore2) 198(defun Buffer-menu-revert-function (ignore1 ignore2)
187 (list-buffers)) 199 ;; We can not use save-excursion here. The buffer gets erased.
200 (let ((old-point (point)))
201 (list-buffers-noselect Buffer-menu-files-only)
202 (goto-char old-point)))
203
204(defun Buffer-menu-toggle-files-only (arg)
205 "Toggle whether the current buffer-menu displays only file buffers.
206With a positive ARG display only file buffers. With zero or
207negative ARG, display other buffers as well."
208 (interactive "P")
209 (setq Buffer-menu-files-only
210 (cond ((not arg) (not Buffer-menu-files-only))
211 ((> (prefix-numeric-value arg) 0) t)))
212 (revert-buffer))
213
188 214
189(defun Buffer-menu-buffer (error-if-non-existent-p) 215(defun Buffer-menu-buffer (error-if-non-existent-p)
190 "Return buffer described by this line of buffer menu." 216 "Return buffer described by this line of buffer menu."
@@ -681,6 +707,8 @@ For more information, see the function `buffer-menu'."
681 ;; current buffer is not displayed for some reason. 707 ;; current buffer is not displayed for some reason.
682 (and desired-point 708 (and desired-point
683 (goto-char desired-point)) 709 (goto-char desired-point))
710 (setq Buffer-menu-files-only files-only)
711 (set-buffer-modified-p nil)
684 (current-buffer)))) 712 (current-buffer))))
685 713
686;;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6 714;;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6