aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2019-10-13 22:56:38 +0200
committerLars Ingebrigtsen2019-10-13 22:56:44 +0200
commite56c0bba4f66d5171daccbd743fbc5dd721c7dc3 (patch)
tree088eeb448ec92bd5c717efb97bba6149f8ed79d0
parent097a03d2a372c1285696779c7051d5b044d437f5 (diff)
downloademacs-e56c0bba4f66d5171daccbd743fbc5dd721c7dc3.tar.gz
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).
-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."
646(defun list-buffers--refresh (&optional buffer-list old-buffer) 646(defun list-buffers--refresh (&optional buffer-list old-buffer)
647 ;; Set up `tabulated-list-format'. 647 ;; Set up `tabulated-list-format'.
648 (let ((name-width Buffer-menu-name-width) 648 (let ((name-width Buffer-menu-name-width)
649 (size-width Buffer-menu-size-width)) 649 (size-width Buffer-menu-size-width)
650 (marked-buffers (Buffer-menu-marked-buffers))
651 (buffer-menu-buffer (current-buffer))
652 (show-non-file (not Buffer-menu-files-only))
653 entries)
650 ;; Handle obsolete variable: 654 ;; Handle obsolete variable:
651 (if Buffer-menu-buffer+size-width 655 (if Buffer-menu-buffer+size-width
652 (setq name-width (- Buffer-menu-buffer+size-width size-width))) 656 (setq name-width (- Buffer-menu-buffer+size-width size-width)))
@@ -656,14 +660,11 @@ means list those buffers and no others."
656 '("M" 1 t) 660 '("M" 1 t)
657 `("Buffer" ,name-width t) 661 `("Buffer" ,name-width t)
658 `("Size" ,size-width tabulated-list-entry-size-> 662 `("Size" ,size-width tabulated-list-entry-size->
659 :right-align t) 663 :right-align t)
660 `("Mode" ,Buffer-menu-mode-width t) 664 `("Mode" ,Buffer-menu-mode-width t)
661 '("File" 1 t)))) 665 '("File" 1 t)))
662 (setq tabulated-list-use-header-line Buffer-menu-use-header-line) 666 (setq tabulated-list-use-header-line Buffer-menu-use-header-line)
663 ;; Collect info for each buffer we're interested in. 667 ;; Collect info for each buffer we're interested in.
664 (let ((buffer-menu-buffer (current-buffer))
665 (show-non-file (not Buffer-menu-files-only))
666 entries)
667 (dolist (buffer (or buffer-list 668 (dolist (buffer (or buffer-list
668 (buffer-list (if Buffer-menu-use-frame-buffer-list 669 (buffer-list (if Buffer-menu-use-frame-buffer-list
669 (selected-frame))))) 670 (selected-frame)))))
@@ -677,12 +678,16 @@ means list those buffers and no others."
677 (not (eq buffer buffer-menu-buffer)) 678 (not (eq buffer buffer-menu-buffer))
678 (or file show-non-file)))) 679 (or file show-non-file))))
679 (push (list buffer 680 (push (list buffer
680 (vector (if (eq buffer old-buffer) "." " ") 681 (vector (cond
682 ((eq buffer old-buffer) ".")
683 ((member buffer marked-buffers) ">")
684 (t " "))
681 (if buffer-read-only "%" " ") 685 (if buffer-read-only "%" " ")
682 (if (buffer-modified-p) "*" " ") 686 (if (buffer-modified-p) "*" " ")
683 (Buffer-menu--pretty-name name) 687 (Buffer-menu--pretty-name name)
684 (number-to-string (buffer-size)) 688 (number-to-string (buffer-size))
685 (concat (format-mode-line mode-name nil nil buffer) 689 (concat (format-mode-line mode-name
690 nil nil buffer)
686 (if mode-line-process 691 (if mode-line-process
687 (format-mode-line mode-line-process 692 (format-mode-line mode-line-process
688 nil nil buffer))) 693 nil nil buffer)))