From ca2d101f5e3d42ed40b690ba86f46fb32e80a820 Mon Sep 17 00:00:00 2001 From: Ulf Jasper Date: Fri, 31 Oct 2008 18:28:16 +0000 Subject: [PATCH] icalendar: uid-creation improved --- lisp/ChangeLog | 7 +++++++ lisp/calendar/icalendar.el | 21 +++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 726872e880a..d7d6729bf49 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2008-10-31 Ulf Jasper + + * calendar/icalendar.el (icalendar--uid-count): New. + (icalendar--create-uid): New. Extracted from + `icalendar-export-region' and add uid counter. + (icalendar-export-region): Use `icalendar--create-uid'. + 2008-10-31 Juanma Barranquero * tooltip.el (tooltip-frame-parameters): Doc fix. diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 10ddb05820d..c74d60763f8 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -877,6 +877,21 @@ Finto iCalendar file: ") (defalias 'icalendar-convert-diary-to-ical 'icalendar-export-file) (make-obsolete 'icalendar-convert-diary-to-ical 'icalendar-export-file) +(defvar icalendar--uid-count 0 + "Auxiliary counter for creating unique ids.") + +(defun icalendar--create-uid () + "Create a unique identifier. +Use `current-time' and a counter to create unique ids. The +counter is necessary for systems which do not provide resolution +finer than a second." + (setq icalendar--uid-count (1+ icalendar--uid-count)) + (format "emacs%d%d%d%d" + (car (current-time)) + (cadr (current-time)) + (car (cddr (current-time))) + icalendar--uid-count)) + ;;;###autoload (defun icalendar-export-region (min max ical-filename) "Export region in diary file to iCalendar format. @@ -916,10 +931,8 @@ FExport diary data into iCalendar file: ") (if (match-beginning 2) (setq entry-rest (match-string 2)) (setq entry-rest "")) - (setq header (format "\nBEGIN:VEVENT\nUID:emacs%d%d%d" - (car (current-time)) - (cadr (current-time)) - (car (cddr (current-time))))) + (setq header (format "\nBEGIN:VEVENT\nUID:%s" + (icalendar--create-uid))) (condition-case error-val (progn (setq contents-n-summary -- 2.39.5