summaryrefslogtreecommitdiff
path: root/gnu/system/uuid.scm
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-05-21 13:22:32 -0400
committerMark H Weaver <mhw@netris.org>2018-05-21 13:22:32 -0400
commit0661758e133c0384d20043d3526b5ebc794e1f04 (patch)
tree46fb6d731fd0e562379ecfffba499deb17847a23 /gnu/system/uuid.scm
parent539bf8f2c071b53834829259bb3fabf0390c5dc6 (diff)
parentc036959b1a61c37c9b7d72e655e1441f2feefb6e (diff)
downloadpatches-0661758e133c0384d20043d3526b5ebc794e1f04.tar
patches-0661758e133c0384d20043d3526b5ebc794e1f04.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/system/uuid.scm')
-rw-r--r--gnu/system/uuid.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index 73695ddeb8..f13960c3e9 100644
--- a/gnu/system/uuid.scm
+++ b/gnu/system/uuid.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
@@ -251,7 +251,8 @@ corresponding bytevector; otherwise return #f."
(define-syntax uuid
(lambda (s)
- "Return the UUID object corresponding to the given UUID representation."
+ "Return the UUID object corresponding to the given UUID representation or
+#f if the string could not be parsed."
(syntax-case s (quote)
((_ str (quote type))
(and (string? (syntax->datum #'str))
@@ -266,9 +267,11 @@ corresponding bytevector; otherwise return #f."
(string? (syntax->datum #'str))
#'(uuid str 'dce))
((_ str)
- #'(make-uuid 'dce (string->uuid str 'dce)))
+ #'(let ((bv (string->uuid str 'dce)))
+ (and bv (make-uuid 'dce bv))))
((_ str type)
- #'(make-uuid type (string->uuid str type))))))
+ #'(let ((bv (string->uuid str type)))
+ (and bv (make-uuid type bv)))))))
(define uuid->string
;; Convert the given bytevector or UUID object, to the corresponding UUID