Function: list-buffers--refresh
list-buffers--refresh is a byte-compiled function defined in
buff-menu.el.gz.
Signature
(list-buffers--refresh &optional BUFFER-LIST OLD-BUFFER)
Source Code
;; Defined in /usr/src/emacs/lisp/buff-menu.el.gz
(defun list-buffers--refresh (&optional buffer-list old-buffer)
;; Set up `tabulated-list-format'.
(let ((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))
(show-internal Buffer-menu-show-internal)
(filter-predicate (and (functionp Buffer-menu-filter-predicate)
Buffer-menu-filter-predicate))
entries name-width)
;; Collect info for each buffer we're interested in.
(dolist (buffer (cond
((functionp buffer-list)
(funcall buffer-list))
(buffer-list)
((functionp Buffer-menu-buffer-list)
(funcall Buffer-menu-buffer-list))
(Buffer-menu-buffer-list)
(t (buffer-list
(if Buffer-menu-use-frame-buffer-list
(selected-frame))))))
(with-current-buffer buffer
(let* ((name (buffer-name))
(file buffer-file-name))
(when (and (buffer-live-p buffer)
(or buffer-list
(and (or show-internal
(not (string= (substring name 0 1) " "))
file)
(not (eq buffer buffer-menu-buffer))
(or file show-non-file)
(or (not filter-predicate)
(funcall filter-predicate buffer)))))
(push (list 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)
(funcall (if Buffer-menu-human-readable-sizes
#'file-size-human-readable
#'number-to-string)
(buffer-size))
(concat (format-mode-line mode-name
nil nil buffer)
(if mode-line-process
(format-mode-line mode-line-process
nil nil buffer)))
(Buffer-menu--pretty-file-name file)))
entries)))))
(setq name-width (if (functionp Buffer-menu-name-width)
(funcall Buffer-menu-name-width (mapcar #'car entries))
Buffer-menu-name-width))
(setq tabulated-list-format
(vector '("C" 1 t :pad-right 0)
'("R" 1 t :pad-right 0)
'("M" 1 t)
`("Buffer" ,name-width t)
`("Size" ,size-width tabulated-list-entry-size->
:right-align t)
`("Mode" ,Buffer-menu-mode-width t)
'("File" 1 t)))
(setq tabulated-list-use-header-line Buffer-menu-use-header-line)
(setq tabulated-list-entries (nreverse entries))
(setq tabulated-list-groups
(tabulated-list-groups
tabulated-list-entries
`(:path-function
,(if (functionp Buffer-menu-group-by)
Buffer-menu-group-by
(lambda (entry)
(list (mapcar (lambda (f) (funcall f entry))
Buffer-menu-group-by))))
:sort-function ,Buffer-menu-group-sort-by))))
(tabulated-list-init-header))