From 9ab3f16c460d91aa556eb35085a90f168b10390f Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Thu, 10 Oct 2019 01:57:54 +0200 Subject: [PATCH] Fix formatting of (file-size-human-readable 2047) * lisp/files.el (file-size-human-readable): Don't format slightly-less numbers as X.0k, but just Xk instead (bug#36329). --- lisp/files.el | 3 ++- test/lisp/files-tests.el | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/files.el b/lisp/files.el index fdd7c75ced6..a1c7e3c8144 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1419,7 +1419,8 @@ in all cases, since that is the standard symbol for byte." (if (string= prefix "") "" "i") (or unit "B")) (concat prefix unit)))) - (format (if (> (mod file-size 1.0) 0.05) + (format (if (and (>= (mod file-size 1.0) 0.05) + (< (mod file-size 1.0) 0.95)) "%.1f%s%s" "%.0f%s%s") file-size diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el index ed23f7675cc..60387e1ab2e 100644 --- a/test/lisp/files-tests.el +++ b/test/lisp/files-tests.el @@ -1282,6 +1282,12 @@ renaming only, rather than modified in-place." (should (equal (file-size-human-readable 10000 'si " " "bit") "10 kbit")) (should (equal (file-size-human-readable 10000 'iec " " "bit") "9.8 Kibit")) + (should (equal (file-size-human-readable 2048) "2k")) + (should (equal (file-size-human-readable 2046) "2k")) + (should (equal (file-size-human-readable 2050) "2k")) + (should (equal (file-size-human-readable 1950) "1.9k")) + (should (equal (file-size-human-readable 2100) "2.1k")) + (should (equal (file-size-human-readable-iec 0) "0 B")) (should (equal (file-size-human-readable-iec 1) "1 B")) (should (equal (file-size-human-readable-iec 9621) "9.4 KiB")) -- 2.39.5