diff options
-rw-r--r-- | guix/ui.scm | 3 | ||||
-rw-r--r-- | tests/ui.scm | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index dce97fb7b9..db932ecacb 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -591,7 +591,8 @@ nicely." \"1MiB\", to a number of bytes. Raise an error if STR could not be interpreted." (define unit-pos - (string-rindex str char-set:digit)) + (string-rindex str + (char-set-union (char-set #\.) char-set:digit))) (define unit (and unit-pos (substring str (+ 1 unit-pos)))) diff --git a/tests/ui.scm b/tests/ui.scm index d8573e88d8..05eace6721 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -227,6 +227,10 @@ Second line" 24)) (expt 2 40) (size->number "1T")) +(test-equal "size->number, 1.M" + (expt 2 20) + (size->number "1.M")) + (test-assert "size->number, invalid unit" (catch 'quit (lambda () |