summaryrefslogtreecommitdiff
path: root/lisp
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
parent38df7d213a021c1c0780b35ee81ac9ab125730dc (diff)
downloademacs-ca2d101f5e3d42ed40b690ba86f46fb32e80a820.tar.gz
icalendar: uid-creation improved
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/calendar/icalendar.el21
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 <ulf.jasper@web.de>
+
+ * 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 <lekktu@gmail.com>
* 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