summaryrefslogtreecommitdiff
path: root/lisp/calendar/icalendar.el
diff options
context:
space:
mode:
authorUlf Jasper <ulf.jasper@web.de>2008-10-31 18:28:16 +0000
committerUlf Jasper <ulf.jasper@web.de>2008-10-31 18:28:16 +0000
commitca2d101f5e3d42ed40b690ba86f46fb32e80a820 (patch)
treeebddb878420e5e8b1c242b8216bc36c97b61ef97 /lisp/calendar/icalendar.el
parent38df7d213a021c1c0780b35ee81ac9ab125730dc (diff)
downloademacs-ca2d101f5e3d42ed40b690ba86f46fb32e80a820.tar.gz
emacs-ca2d101f5e3d42ed40b690ba86f46fb32e80a820.tar.bz2
emacs-ca2d101f5e3d42ed40b690ba86f46fb32e80a820.zip
icalendar: uid-creation improved
Diffstat (limited to 'lisp/calendar/icalendar.el')
-rw-r--r--lisp/calendar/icalendar.el21
1 files changed, 17 insertions, 4 deletions
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