From f40aff4c5d2d8dc83074addc568abcdf564e6b01 Mon Sep 17 00:00:00 2001 From: Pengji Zhang Date: Mon, 27 Jan 2025 19:42:00 +0800 Subject: [PATCH] New user option 'Buffer-menu-human-readable-sizes' * lisp/buff-menu.el (Buffer-menu-human-readable-sizes): New user option. (list-buffers--refresh): Use it. * etc/NEWS: Announce the new user option. (Bug#75825) --- etc/NEWS | 6 ++++++ lisp/buff-menu.el | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) 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