aboutsummaryrefslogtreecommitdiff
path: root/src/property/disk.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/property/disk.lisp')
-rw-r--r--src/property/disk.lisp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/property/disk.lisp b/src/property/disk.lisp
index 53203aa..08d1dcf 100644
--- a/src/property/disk.lisp
+++ b/src/property/disk.lisp
@@ -1207,16 +1207,14 @@ Currently only handling of LVM logical volumes is implemented."
(defun parse-volume-size (volume-size-specification)
(if (stringp volume-size-specification)
- (multiple-value-bind (match groups)
- (re:scan-to-strings #?/\A([0-9]+)([MGT])?\z/ volume-size-specification)
- (unless match
- (simple-program-error
- "~A is not a valid volume size." volume-size-specification))
- (* (parse-integer (elt groups 0))
- (eswitch ((elt groups 1) :test #'string=)
- ("M" 1)
- ("G" 1024)
- ("T" 1048576))))
+ (aif (#~/\A(\d+)([MGT])?\z/p volume-size-specification)
+ (* (elt it 0)
+ (eswitch ((elt it 1) :test #'string=)
+ ("M" 1)
+ ("G" 1024)
+ ("T" 1048576)))
+ (simple-program-error "~A is not a valid volume size."
+ volume-size-specification))
volume-size-specification))
(defmacro volumes (&body volume-specifications)