From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Maus Subject: [PATCH 1/2] Provide function that returns a string with a random (version 4) UUID. Date: Tue, 18 May 2010 08:10:59 +0200 Message-ID: <1274163060-10251-2-git-send-email-dmaus@ictsoc.de> References: Return-path: Received: from [140.186.70.92] (port=46733 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OEG20-0001pG-3g for emacs-orgmode@gnu.org; Tue, 18 May 2010 02:12:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OEG1r-0003wY-Gw for emacs-orgmode@gnu.org; Tue, 18 May 2010 02:11:55 -0400 Received: from mysql1.xlhost.de ([213.202.242.106]:45680) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OEG1r-0003wT-9R for emacs-orgmode@gnu.org; Tue, 18 May 2010 02:11:47 -0400 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --- 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 + + * org-id.el (org-id-uuid): New function. Return string with + random (version 4) UUID. + 2010-05-15 Carsten Dominik * 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