--- lisp/ChangeLog | 5 +++++ lisp/org-id.el | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4fb3aac..fafe7db 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-05-16 David Maus <dm...@ictsoc.de> + + * org-id.el (org-id-uuid): New function. Return string with + random (version 4) UUID. + 2010-05-15 Carsten Dominik <carsten.domi...@gmail.com> * org-latex.el (org-export-latex-format-image): Add support diff --git a/lisp/org-id.el b/lisp/org-id.el index 0678161..6175eee 100644 --- a/lisp/org-id.el +++ b/lisp/org-id.el @@ -318,6 +318,30 @@ So a typical ID could look like \"Org:4nd91V40HI\"." (t (error "Invalid `org-id-method'"))) (concat prefix unique))) +(defun org-id-uuid () + "Return string with random (version 4) UUID." + (let ((rnd (md5 (format "%s%s%s%s%s%s%s" + (random t) + (current-time) + (user-uid) + (emacs-pid) + (user-full-name) + user-mail-address + (recent-keys))))) + (format "%s-%s-4%s-%s%s-%s" + (substring rnd 0 8) + (substring rnd 8 12) + (substring rnd 13 16) + (format "%x" + (logior + #B10000000 + (logand + #B10111111 + (string-to-number + (substring rnd 16 18) 16)))) + (substring rnd 18 20) + (substring rnd 20 32)))) + (defun org-id-reverse-string (s) (mapconcat 'char-to-string (nreverse (string-to-list s)) "")) -- 1.7.1 _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode