diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-13 22:56:38 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-13 22:56:44 +0200 |
commit | e56c0bba4f66d5171daccbd743fbc5dd721c7dc3 (patch) | |
tree | 088eeb448ec92bd5c717efb97bba6149f8ed79d0 /lisp/buff-menu.el | |
parent | 097a03d2a372c1285696779c7051d5b044d437f5 (diff) | |
download | emacs-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.el | 25 |
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))) |