summaryrefslogtreecommitdiff
path: root/lisp/buff-menu.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-10-13 22:56:38 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-10-13 22:56:44 +0200
commite56c0bba4f66d5171daccbd743fbc5dd721c7dc3 (patch)
tree088eeb448ec92bd5c717efb97bba6149f8ed79d0 /lisp/buff-menu.el
parent097a03d2a372c1285696779c7051d5b044d437f5 (diff)
downloademacs-e56c0bba4f66d5171daccbd743fbc5dd721c7dc3.tar.gz
emacs-e56c0bba4f66d5171daccbd743fbc5dd721c7dc3.tar.bz2
emacs-e56c0bba4f66d5171daccbd743fbc5dd721c7dc3.zip
Make list-buffers--refresh preserve marks
* lisp/buff-menu.el (list-buffers--refresh): Preserve the marked buffers when refreshing the list (bug#6491).
Diffstat (limited to 'lisp/buff-menu.el')
-rw-r--r--lisp/buff-menu.el25
1 files changed, 15 insertions, 10 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 3cea186e6e3..2a67eab4606 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -646,7 +646,11 @@ means list those buffers and no others."
(defun list-buffers--refresh (&optional buffer-list old-buffer)
;; Set up `tabulated-list-format'.
(let ((name-width Buffer-menu-name-width)
- (size-width Buffer-menu-size-width))
+ (size-width Buffer-menu-size-width)
+ (marked-buffers (Buffer-menu-marked-buffers))
+ (buffer-menu-buffer (current-buffer))
+ (show-non-file (not Buffer-menu-files-only))
+ entries)
;; Handle obsolete variable:
(if Buffer-menu-buffer+size-width
(setq name-width (- Buffer-menu-buffer+size-width size-width)))
@@ -656,14 +660,11 @@ means list those buffers and no others."
'("M" 1 t)
`("Buffer" ,name-width t)
`("Size" ,size-width tabulated-list-entry-size->
- :right-align t)
+ :right-align t)
`("Mode" ,Buffer-menu-mode-width t)
- '("File" 1 t))))
- (setq tabulated-list-use-header-line Buffer-menu-use-header-line)
- ;; Collect info for each buffer we're interested in.
- (let ((buffer-menu-buffer (current-buffer))
- (show-non-file (not Buffer-menu-files-only))
- entries)
+ '("File" 1 t)))
+ (setq tabulated-list-use-header-line Buffer-menu-use-header-line)
+ ;; Collect info for each buffer we're interested in.
(dolist (buffer (or buffer-list
(buffer-list (if Buffer-menu-use-frame-buffer-list
(selected-frame)))))
@@ -677,12 +678,16 @@ means list those buffers and no others."
(not (eq buffer buffer-menu-buffer))
(or file show-non-file))))
(push (list buffer
- (vector (if (eq buffer old-buffer) "." " ")
+ (vector (cond
+ ((eq buffer old-buffer) ".")
+ ((member buffer marked-buffers) ">")
+ (t " "))
(if buffer-read-only "%" " ")
(if (buffer-modified-p) "*" " ")
(Buffer-menu--pretty-name name)
(number-to-string (buffer-size))
- (concat (format-mode-line mode-name nil nil buffer)
+ (concat (format-mode-line mode-name
+ nil nil buffer)
(if mode-line-process
(format-mode-line mode-line-process
nil nil buffer)))