summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/files.el3
-rw-r--r--test/lisp/files-tests.el6
2 files changed, 8 insertions, 1 deletions
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"))