guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: uuid: 'fat-uuid->string' preserves leading zeros.


From: guix-commits
Subject: 01/02: uuid: 'fat-uuid->string' preserves leading zeros.
Date: Tue, 7 May 2019 06:18:49 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 6c5790a2faf8ffc401e43b13425a707394e40874
Author: Ludovic Courtès <address@hidden>
Date:   Tue May 7 10:50:28 2019 +0200

    uuid: 'fat-uuid->string' preserves leading zeros.
    
    Fixes <https://bugs.gnu.org/35582>.
    Reported by sirgazil <address@hidden>.
    
    Previously, leading zeros would be removed, leading to an "invalid"
    UUID:
    
      (uuid->string (uuid "00CA-050E" 'fat32))
      ⇒ "CA-50E"
      (string->uuid "CA-50E" 'fat32)
      ⇒ #f
    
    * gnu/system/uuid.scm (fat-uuid->string): Pad digits with zeros.
    * tests/uuid.scm ("uuid, FAT32, leading zeros preserved"): New test.
---
 gnu/system/uuid.scm | 4 ++--
 tests/uuid.scm      | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index f13960c..e7a3a04 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, 2018 Ludovic Courtès <address@hidden>
+;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2017 Danny Milosavljevic <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -175,7 +175,7 @@ ISO9660 UUID representation."
   "Convert FAT32/FAT16 UUID, a 4-byte bytevector, to its string 
representation."
   (let ((high  (bytevector-uint-ref uuid 0 %fat-endianness 2))
         (low (bytevector-uint-ref uuid 2 %fat-endianness 2)))
-    (format #f "~:@(~x-~x~)" low high)))
+    (format #f "~:@(~4,'0x-~4,'0x~)" low high)))
 
 (define %fat-uuid-rx
   (make-regexp "^([[:xdigit:]]{4})-([[:xdigit:]]{4})$"))
diff --git a/tests/uuid.scm b/tests/uuid.scm
index 260614f..1c6d1e9 100644
--- a/tests/uuid.scm
+++ b/tests/uuid.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <address@hidden>
+;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +57,10 @@
   "1234-ABCD"
   (uuid->string (uuid "1234-abcd" 'fat32)))
 
+(test-equal "uuid, FAT32, leading zeros preserved"
+  "00CA-050E"                                    ;<https://bugs.gnu.org/35582>
+  (uuid->string (uuid "00CA-050E" 'fat32)))
+
 (test-assert "uuid, dynamic value"
   (let* ((good "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
          (bad  (string-drop good 3)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]