diff --git a/etc/NEWS b/etc/NEWS index 4859ac414e3..fd0d3ece5eb 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -402,6 +402,12 @@ set to 'title'. *** New user option 'ibuffer-human-readable-size'. When non-nil, buffer sizes are shown in human readable format. +--- +** Buffer Menu +*** New user option 'Buffer-menu-human-readable-sizes'. +When non-nil, buffer sizes are shown in human readable format. The +default is nil, which retains the old format. + ** Smerge *** New command 'smerge-extend' extends a conflict over surrounding lines. diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 4418db01724..36268b3512a 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -135,6 +135,14 @@ If this is nil, group names are unsorted." :group 'Buffer-menu :version "30.1") +(defcustom Buffer-menu-human-readable-sizes nil + "If non-nil, show buffer sizes in human-readable format. +That means to use `file-size-human-readable' (which see) to format the +buffer sizes in the buffer size column." + :type 'boolean + :group 'Buffer-menu + :version "31.1") + (defvar-local Buffer-menu-files-only nil "Non-nil if the current Buffer Menu lists only file buffers. This is set by the prefix argument to `buffer-menu' and related @@ -831,7 +839,10 @@ See more at `Buffer-menu-filter-predicate'." (if buffer-read-only "%" " ") (if (buffer-modified-p) "*" " ") (Buffer-menu--pretty-name name) - (number-to-string (buffer-size)) + (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