Function: uuid-from-string

uuid-from-string is a byte-compiled function defined in uuid.el.gz.

Signature

(uuid-from-string UUID-STR)

Documentation

Parse UUID-STR and return the appropriate UUID object.

View in manual

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/uuid.el.gz
(defun uuid-from-string (uuid-str)
  "Parse UUID-STR and return the appropriate UUID object."
  (let* ((parts (split-string uuid-str "-"))
         (_ (unless (and (= (length parts) 5)
                         (= (length (nth 0 parts)) 8)
                         (= (length (nth 1 parts)) 4)
                         (= (length (nth 2 parts)) 4)
                         (= (length (nth 3 parts)) 4)
                         (= (length (nth 4 parts)) 12)
                         (string-match "^[0-9a-fA-F-]+$" uuid-str))
              (signal 'uuid-invalid-string (list uuid-str))))
         (hex-parts (mapcar (lambda (part) (string-to-number part 16)) parts))
         (version (uuid--upper-bits (nth 2 hex-parts) 4 16))
         (variant (uuid--upper-bits (nth 3 hex-parts) 2 16))
         (high (uuid--concat-bits
                (nth 0 hex-parts) 32
                (nth 1 hex-parts) 16))
         (mid (uuid--lower-bits (nth 2 hex-parts) 12))
         (low
          (uuid--concat-bits
           (uuid--lower-bits (nth 3 hex-parts) 14) 14
           (nth 4 hex-parts) 48)))
    (uuid--from-parts high mid low version variant)))